联 系 我 们
售前咨询
售后咨询
微信关注:星环科技服务号
更多联系方式 >
6.8.13.1 Inceptor SQL PL入门
更新时间:7/30/2024, 7:33:29 AM

Inceptor SQL PL (Procedural Language) 是兼容 DB2 SQL PL 的过程语言。在使用 Inceptor SQL PL 和 Inceptor 进行交互前,请确保您打开 DB2 方言开关


输出

Inceptor 中有两种输出方式,可以调用 DBMS_OUTPUT 包内函数 PUT_LINE,也可以直接调用系统预定义函数 PUT_LINE 来输出存储过程或者函数中的信息。

  • DBMS_OUTPUT.PUT_LINE

    DBMS_OUTPUT.PUT_LINE('<values>');
    复制
  • PUT_LINE

    PUT_LINE('<values>');
    复制
声明

Inceptor 中声明变量,游标,自定义数据类型时,都需要用到关键字 DECLARE。

  • DECLARE Variables

    DECLARE <variable_name> <datatype> [DEFAULT <value>];
    复制
  • DECLARE CURSOR

    DECLARE <cursorname> CURSOR [WITH HOLD] [WITH RETURN TO CALLER|CLIENT] FOR <sql-statement>;
    复制
  • DECLARE Row data type

    DECLARE TYPE transactiontype AS ROW (variable_name data_type,variable_name data_type,variable_name data_type,...);
    复制
赋值

Inceptor 中有多种赋值语句,可根据具体应用场景,选择相应的赋值语句。

  • SET

    SET <variable_name> = <value> ;
    复制
  • VALUES INTO

    VALUES <value> INTO <variable_name> ;
    复制
  • SELECT INTO

    SELECT <sqlstatement> INTO <variable_name> ;
    复制
过程
  • CREATE PROCEDURE

    CREATE [OR REPLACE] PROCEDURE <procedure_name> [ ( {optional parameters} ) ] [{optional procedure attributes}]
    复制
  • CALL

    Inceptor 中可以使用关键字 CALL 来调用创建的存储过程。

    CALL procedure_name ( <inputvalue1>, <inputvalue2>, ... );
    复制
函数
  • CREATE FUNCTIONS

    CREATE [OR REPLACE] FUNCTION  <function_name> [ ( {optional parameters} ) ] [{optional function attributes}]
    复制
游标
  • DECLARE CURSOR

    DECLARE cursor_name CURSOR [WITH RETURN] FOR  sql_statement;
    复制
  • OPEN CURSOR

    OPEN cursor_name;
    复制
  • FETCH CURSOR

    FETCH cursor_name INTO Variable;
    复制
  • CLOSE CURSOR

    CLOSE cursor_name;
    复制
  • ALLOCATE CURSOR

    ALLOCATE <cursor-name> CURSOR FOR RESULT SET <locator-variable>;
    复制
异常
  • DECLARE Condition

    DECLARE condition_name FOR SQLSTATE '<value>';
    复制
  • DECLARE Condition handler

    DECLARE handler-type HANDLER FOR condition_name;
    复制
  • SIGNAL

    SIGNAL SQLSTATE [value] <sqlstate> [SET MESSAGE_TEXT = <variable> or <diagnostic string constant>];
    复制
  • RESIGNAL

    RESIGNAL SQLSTATE [VALUE] <sqlstate> [SET MESSAGE_TEXT = <variable> or <diagnostic string constant>];
    复制
动态 SQL
  • EXECUTE IMMEDIATE

    EXECUTE IMMEDIATE <sql-statement>;
    复制
  • PREPARE

    PREPARE <sql-statement>  FROM <variable>;
    复制
  • EXECUTE

    EXECUTE <statement-name>  [USING <input-variable> [,<input-variable>,...] ];
    复制