代码之家  ›  专栏  ›  技术社区  ›  Joe R.

哪些SQL实现具有类似于PSM的功能?

  •  1
  • Joe R.  · 技术社区  · 14 年前

    尽管Oracle是最早创建存储过程(PL/SQL)的公司之一,但Informix with(SPL)除了DB2之外,还有哪些RDBMS产品在1998年之后实现了SQL/PSM或其子集?。。哪种RDBMS可以支持以下示例中的过程

     CREATE OR REPLACE FUNCTION foo1(a integer)
    RETURNS void AS $$
      CASE a
        WHEN 1, 3, 5, 7, 9 THEN
          PRINT a, 'is odd number';
        WHEN 2, 4, 6, 8, 10 THEN
          PRINT a. 'is odd number';
        ELSE 
          PRINT a, 'isn't from range 1..10';
      END CASE;
    $$ LANGUAGE plpgpsm;
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Jonathan Leffler    14 年前

    只有DB2接近PSM,AFAIK。Sybase很早就有了Transact-SQL;微软借来的。三匹可能需要检查的黑马是MySQL、PostgreSQL和Ingres。然而,我不记得当我看过他们的代码时,他们中的任何一个都接近于PSM。

    然而,Google搜索mysql psm表明mysql 5.x和postgresql8.2支持一种接近标准的psm形式(搜索“ingres psm”表明,ingres中的psm是一种“部分排序合并”联接技术。)

        2
  •  1
  •   Bob Jarvis - Слава Україні    14 年前

    CREATE OR REPLACE PROCEDURE foo1(a integer) AS
    BEGIN
      CASE
        WHEN a IN (1, 3, 5, 7, 9) THEN
          DBMS_OUTPUT.PUT_LINE(a || ' is odd number');
        WHEN a IN (2, 4, 6, 8, 10) THEN 
          DBMS_OUTPUT.PUT_LINE(a || ' is even number'); 
        ELSE
          DBMS_OUTPUT.PUT_LINE(a || ' isn''t FROM RANGE 1..10');
      END CASE;
    END;
    

    分享和享受。