数据仓库服务 GaussDB(DWS)-PL/pgSQL使用:程序编写原则

时间:2023-11-01 16:16:34

程序编写原则

  1. 在PL/PGSQL中的SQL语句宜使用绑定变量。
  2. 在PL/PGSQL中的SQl语句宜使用RETURNING字句。
  3. 存储过程使用原则:
    1. 对于单个存储过程中Varchar或者Varchar2类型输出参数个数不应超过50个。
    2. 不应使用long类型作为输入或输出参数。
    3. 对于大小超过10MB的字符串类型输出,应使用CLOB类型。
  4. 变量声明原则:
    1. 变量声明时,如果含义和应用表某字段含义或某变量相同时,应使用%TYPE声明。
    2. 记录声明时,如果含义和某应用表行数据相同时,应使用%ROWTYPE声明。
    3. 变量声明每行应只包含一条语句。
    4. 不应声明LONG类型的变量。
  5. 游标使用类型:
    1. 显式游标使用后应关闭。
    2. 游标变量使用后应关闭,若游标变量需要传递数据给调用的应用程序,应在应用程序中进行游标关闭处理;若游标变量仅在存储过程中使用,应显式关闭游标。
    3. 在使用DBMS_SQL.CLOSE_CURSOR关闭游标前,应使用DBMS_SQL.IS_OPEN判断游标是否已打开。
  6. 集合使用原则:
    1. 引用集合中的元素时宜使用FORALL语句,不宜使用FOR循环语句。
  7. 动态语句使用原则:
    1. 联机系统的交易程序不宜使用动态SQL。
    2. PL/PGSQL中要实现DDL语句和系统控制命令,可使用动态SQL。
    3. 宜尽量使用变量绑定。
  8. 拼装SQL的使用原则:
    1. 拼装SQL宜使用绑定变量。
    2. 拼装SQL语句的条件如果有外部输入源,应对输入条件进行字符检查,防止攻击。
    3. 在PL/PGSQL脚本中,单行代码的长度,不宜超过2499字符。
  9. Trigger使用原则:
    1. Trigger可用于实现差量数据日志等于业务处理无关的可用性设计场景。
    2. 不应使用Trigger实现业务处理相关功能。
support.huaweicloud.com/devg-820-dws/dws_04_0972.html