IBM Books

管理与程序设计指南,OS/400 版

执行 SQL 语句

可以执行动态 SQL 支持的任何 SQL 语句。

要执行 SQL 语句,需要定义一个使用 SQL (DTW_SQL) 语言环境的函数,并在该函数的语言环境可执行部分 包含 SQL 语句。

例子:一个运行 SQL SELECT 语句的 SQL 函数:

%function(DTW_SQL) getOrders() {  
   SELECT cust, custid, custorder FROM mylibrary.customers  
%}

确认控制

缺省情况下,SQL 语言环境在确认控制下运行,遵循调节确认控制的所有规则。

要获取有关事务管理的更多信息,请参阅管理 Net.Data 应用程序中的事务

OUT 和 INOUT 表格

如果您在函数定义中指定 OUT 或 INOUT Net.Data 表格,并且 SQL 语句返回结果集,则 SQL 语言环境将 在指定的表格中存储每个结果集。然后,您就可以在宏中使用该表格。如果没有指定 OUT 表格, SQL 语言环境将使用缺省的表格。

嵌套的 SQL 语句

您可以从一个 SQL 函数的 ROW 块中调用其它 SQL 函数。在每个 SQL 函数中使用唯一的 Net.Data 表格名, 否则,可能出现无法预知的结果。

例子:从 ROW 块或另一个 SQL 函数调用 SQL 函数

%define mytable1 = %TABLE   
%define mytable2 = %TABLE     
 
%FUNCTION(DTW_SQL) sql2 (IN p1, OUT t2) {
   select * from NETDATA.STAFFINF where projno='$(p1)'
       %REPORT {    
  %ROW { $(N1) is $(V1) %}
 %}
%}  
 
%FUNCTION(DTW_SQL) sql1 (OUT t1) { 
   select * from NETDATA.STAFFINF
       %REPORT {  
   %ROW { @sql2(V1, mytable2) %}  
 %}   
%}   
 
%HTML(netcall1) { @sql1(mytable1) %}

受支持的语言环境变量

SQL 语言环境支持那些为支持 DB2 而设计的变量。 例如,DATABASE 变量指定了执行 SQL 语句时 SQL 语言环境所连接到的数据源。以下列表指定了 对 SQL 语言环境所支持的变量。 请参阅Net.Data 参考,以获取对这些变量的描述、变量的语法以及示例。

受支持的数据类型

SQL 语言环境支持表 5中列出的数据类型

表 5. 数据类型
BLOB(1) DOUBLE SMALLINT
CHAR DOUBLEPRECISION TIME
CLOB(1) FLOAT TIMESTAMP
DATE GRAPHIC VARCHAR
DBCLOB(1) INTEGER VARGRAPHIC
DECIMAL REAL

(1) 这些数据类型不能作为参数传递到存储过程调用。要了解对于存储过程所支持的数据类型, 请参阅存储过程语法

请参阅数据类型考虑,以了解对于 LOB 和 DATALINK 数据类型的特殊考虑事项。

SQL 语言环境限制

在计划您的环境时,请考虑以下限制:


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]