SQL处理选项说明
无论您使用的是 Db2 预编译器还是 Db2 协处理器,都可以指定任何SQL处理选项。 然而, Db2 协处理器可能会忽略某些选项,因为主机语言编译器选项提供了相同的信息。
下表列出了使用 Db2 预编译器或 Db2 协处理器时可以指定的选项。 表格中还包含这些选项的缩写,并指出哪些选项在特定主机语言或 Db2 协处理器中会被忽略。 本表格使用竖线(|)分隔相互排斥的选项,使用括号([ ])表示有时可以省略括号内的选项。
| 选项关键词 | 含义 |
|---|---|
| APOST1 | 指示 Db2 预编译器在其生成的主机语言语句中以单引号(')作为字符串分隔符。 此选项并非在所有语言中可用。 APOST和QUOTE选项不能同时使用。 默认值在安装期间位于应用程序编程默认面板1的字符串分隔符字段中。 如果字符串分隔符是撇号('),则 APOST 为默认值。 |
| APOSTSQL | 在SQL语句中,将撇号(')作为字符串分隔符,将双引号(")作为SQL转义字符。 APOSTSQL和QUOTESQL是相互排斥的选项。 在安装过程中,默认值位于“应用程序编程默认值面板1”中的“SQL字符串分隔符”字段中。 如果 SQL STRING DELIMITER 是单引号('),则 APOSTSQL 为默认值。 |
| 附加(TSO|CAF|RRSAF |ULI ) | 指定应用程序用于访问 Db2 TSO、CAF、RRSAF或DSNULI应用程序的附件设施。加载附件设施的应用程序可以使用此选项指定正确的附件设施,而不是编码一个虚拟的DSNHLI入口点
此选项不适用于 Fortran 申请。 默认值为ATTACH(TSO)。 |
| CCSID(n ) | 指定源程序所使用的CCSID的数值 n。 n 必须是 EBCDIC CCSID。 默认设置是安装过程中面板 DSNTIPF 上指定的 EBCDIC 系统 CCSID。 Db2 协处理器使用以下过程来确定源语句的CCSID:
CCSID取代了GRAPHIC和NOGRAPHIC SQL处理选项。 如果指定CCSID(1026)或CCSID(1155),则 Db2 协处理器不支持双引号(“”)的代码点'FC'X。 |
| 逗号 | 在以下情况下,逗号(,)在十进制或浮点数字面中作为小数点指示符:
逗号和句号不能同时使用。 在安装过程中,默认值(逗号或句号)是在应用程序编程默认面板1上的小数点下选择的。 |
连接(2|1)
CT(2|1) |
确定应用类型1还是类型2的CONNECT语句规则。
|
| 日期(ISO|美国|欧洲|日本|本地) | 指定日期输出应始终以特定格式返回,而不管位置默认值中指定的格式如何。 默认值在安装过程中在应用程序编程默认值面板2的日期格式字段中指定。 默认格式由绑定程序的系统的安装默认设置决定,而非由预编译程序的系统的安装默认设置决定。 除非您有日期退出程序,否则无法使用“本地”选项。 |
DEC(15|31)
DEC15 | DEC31 D15.s | D31.s |
指定十进制算术运算的最大精度。 在安装过程中,默认值位于应用程序编程默认值面板1的十进制算术字段中。 如果指定了表格D pp.s ,则 pp 必须为15或31,表示最小分度值的s 必须为1到9之间的数字。 |
| DECP (名称 ) | 名称表示应用程序的1到8个字符名称,默认值是仅包含数据的加载模块。 如果省略此参数,则使用默认名称DSNHDECP。 |
| FLAG(I|W|E|S)1 | 抑制指定严重级别以下的诊断信息(严重性代码分别为0、4、8和12的信息、警告、错误和严重错误)。 默认设置为FLAG(I)。 |
| FLOAT( S390|IEEE ) | 确定汇编程序、C、C++ 或 PL/I 程序中浮点主机变量的内容是 IEEE 浮点格式还是 z/Architecture® 十六进制浮点格式。 Db2 如果HOST的值不是ASM、C、CPP或PLI,则忽略此选项。 默认设置是FLOAT( S390 )。 |
| GRAPHIC | 此选项不再用于SQL语句处理。 请使用CCSID选项。 表示源代码可能使用混合数据, 而X'0E'和 X'0F' 是EBCDIC数据的特殊控制字符(移出和移入)。 GRAPHIC和NOGRAPHIC是相互排斥的选项。 默认值(图形或非图形)在安装过程中在应用程序编程默认面板1的混合数据字段中指定。 |
HOST1(ASM |C[(FOLD)]|
CPP[(FOLD)]| IBMCOB| PLI| FORTRAN| SQL| SQLPL) |
定义包含 SQL 语句的主机语言。 请将IBMCOB用于 Enterprise COBOL for z/OS®。 对于C,请说明:
对于C++,请指定:
对于SQL程序语言,请指定:
如果省略 HOST 选项, Db2 预编译器会发出 level-4 诊断消息,并使用该选项的默认值。 在安装过程中,默认值位于“应用程序编程默认值面板1”中的“语言默认值”字段中。 此选项还设置了与语言相关的默认设置。 |
级别 [(aaaa )]
L |
定义模块级别,其中 aaa 是最多七个字符的任意字母数字值。 不建议将此选项用于一般用途,DSNH CLIST和 DB2I 面板不支持此选项。 对于汇编程序、C、C++、 Fortran 和 PL/I ,可以省略子选项 (aaaa)。 生成的一致性标记为空。 对于 COBOL ,需要指定子选项。 |
LINECOUNT1(n )
LC |
定义 Db2 预编译器列表中每页的行数为 n。 这包括由 Db2 预编译器插入的标题行。 默认设置为LINECOUNT(60)。 |
边距 1 (m,n[,c])
3月 |
指定每个源记录中包含主机语言或SQL语句的部分。 对于装配程序,此选项还指定列延续的开始位置。 第一个选项(m)是语句的开始列。 第二个选项(n)是陈述的结尾栏。 第三个选项(c)指定了汇编程序的继续执行位置。 否则, Db2 预编译器会在紧接结尾列的列中放置一个续行指示符。 保证金数值范围为1-80。 默认值取决于您指定的主机选项。 DSNH CLIST和 DB2I 面板不支持此选项。 在汇编程序中,如果源代码中提供了余量选项,则该选项必须符合ICTL指令。 |
| NEWFUN(越南 ) | 已弃用的功能: NEWFUN处理选项已弃用。
请使用SQLLEVEL选项。![]() 指示是否接受对 Db2 12 而言是新的函数语法。
|
| NOFOR | 在静态SQL中,无需在DECLARE CURSOR语句中使用FOR UPDATE或FOR UPDATE OF子句。 当您使用NOFOR时,您的程序可以对任何列进行定位更新,前提是该程序具有 Db2 权限。 当您不使用 NOFOR 时,如果您要对程序具有 Db2 权限的任何列进行定位更新,则需要在 DECLARE CURSOR 语句中指定 FOR UPDATE,且不包含列列表。 不带列列表的FOR UPDATE子句适用于静态或动态SQL语句。 无论是否使用NOFOR,您都可以指定FOR UPDATE OF,并附上列列表,将更新限制为仅更新子句中命名的列,还可以指定获取更新锁。 当您使用选项STDSQL(YES)时,意味着NOFOR。 如果生成的DBRM非常大,当您指定NOFOR或使用FOR UPDATE子句而没有列列表时,可能需要额外的存储空间。 |
| NOGRAPHIC | 此选项不再用于SQL语句处理。 请使用CCSID选项。 表示在字符串中使用 X'0E'和 X'0F' 字符串中,但不是作为控制字符。 GRAPHIC和NOGRAPHIC是相互排斥的选项。 默认值(图形或非图形)在安装过程中在应用程序编程默认面板1的混合数据字段中指定。 NOGRAPHIC选项仅适用于EBCDIC数据。 |
无选择
无选择 |
禁止显示 Db2 预编译选项列表。 |
| NOPADNTSTR | 指示以 NUL 结尾的字符串的输出主变量不使用空格填充。 也就是说,在字符串末尾放置NUL终止符之前,不会插入额外的空格。 PADNTSTR和NOPADNTSTR是互斥选项。 默认值(PADNTSTR或NOPADNTSTR)在安装过程中在应用程序编程默认值面板2的PAD NUL-TERMINATED字段中指定。 此选项仅适用于C和C++应用程序。 |
NOSOURCE2
NOS |
禁止显示 Db2 预编译源代码列表。 这是缺省值。 |
| NOXREF | 禁止显示 Db2 预编译器交叉引用列表。 这是缺省值。 |
ONEPASS
ON |
一次完成所有工序,避免二次加工带来的额外时间。 声明必须出现在SQL引用之前。 默认值取决于指定的主机选项。 ONEPASS和TWOPASS是相互排斥的选项。 |
选项1
选项 |
列出 Db2 预编译选项。 这是缺省值。 |
| PADNTSTR | 表示以空字符结尾的输出宿主变量用空格填充,空字符结尾符位于字符串末尾。 PADNTSTR和NOPADNTSTR是互斥选项。 默认值(PADNTSTR或NOPADNTSTR)在安装过程中在应用程序编程默认值面板2的PAD NUL-TERMINATED字段中指定。 此选项仅适用于C和C++应用程序。 |
| PERIOD | 在以下情况下,将句点(.)识别为十进制或浮点数字面值中的小数点指示符:
逗号和句号不能同时使用。 默认值(逗号或句号)在安装过程中在应用程序编程默认值面板1的“小数点”字段中指定。 |
报价1
Q |
指示 Db2 预编译器在其生成的主机语言语句中以引号(")作为字符串分隔符。 报价仅适用于 COBOL 申请。 以下预编译选项组合均不适用:
默认值在安装过程中在应用程序编程默认值面板1的字符串分隔符字段中指定。 如果字符串分隔符为双引号(")或默认值,则默认值为引号。 APOST和QUOTE选项不能同时使用。 |
| QUOTESQL | 在SQL语句中,将双引号(")作为字符串分隔符,将单引号(')作为SQL转义字符。 该选项仅适用于 COBOL。 默认值在安装过程中在应用程序编程默认值面板1的SQL字符串分隔符字段中指定。 如果 SQL STRING DELIMITER 是双引号(")或 DEFAULT,则 QUOTESQL 为默认值。 APOSTSQL和QUOTESQL是相互排斥的选项。 |
来源1
S |
列出 Db2 预编译源代码和诊断信息。 |
| SQL(ALL| DB2 ) | 指示源代码中是否包含 Db2 for z/OS 无法识别的SQL语句。 对于SQL语句必须在 Db2 for z/OS 以外的服务器上执行的应用程序,建议使用SQL(ALL),使用DRDA访问。 SQL(ALL)表示程序中的SQL语句不一定是 Db2 for z/OS 的。 因此,SQL语句处理器会接受不符合 Db2 语法规则的语句。 SQL语句处理器根据分布式关系数据库架构(DRDA)规则解释和处理SQL语句。 如果程序试图将 IBM® SQL保留字用作普通标识符,SQL语句处理器也会发出一条信息。 SQL(ALL)不影响SQL语句处理器的限制。 SQL(Db2 )是默认设置,用于解释SQL语句并检查语法,供 Db2 for z/OS 使用。 当数据库服务器为 Db2 for z/OS 时,建议使用SQL(Db2)。 |
SQLLEVEL(V10R1|V11R1 |function-level )![]() |
指示是否接受在 Db2 12 函数级别中新增的SQL语法。
![]() |
| STDSQL(NO|YES)3 | 指示输出语句应符合哪些规则。 STDSQL(YES)3 表示源程序中的预编译SQL语句符合SQL标准的某些规则。 STDSQL(NO)表示符合 Db2 规则。 默认值在安装过程中在应用程序编程默认值面板2的STD SQL LANGUAGE字段中指定。 STDSQL(YES)自动包含NOFOR选项。 |
| 时间(ISO|美国|欧洲|日本|本地) | 指定时间输出始终以特定格式返回,而不管位置默认值指定的格式如何。 默认值在安装过程中在应用程序编程默认值面板2的时间格式字段中指定。 默认格式由绑定程序的系统的安装默认设置决定,而非由预编译程序的系统的安装默认设置决定。 除非您设置了定时退出程序,否则无法使用“本地”选项。 |
TWOPASS
TW |
声明和引用分两步进行,因此声明不必在引用之前进行。 默认值取决于指定的主机选项。 ONEPASS和TWOPASS是相互排斥的选项。 对于 Db2 协处理器,可以只为 PL/I 应用程序指定 TWOPASS 选项。 对于 C/C++ 和 COBOL 应用程序, Db2 协处理器使用 ONEPASS 选项。 |
| 版本 (aaaa| 自动) | 定义软件包、程序和生成的DBRM的版本标识符。 版本标识符是最多包含 64 个 EBCDIC 字节的 SQL 标识符。 当您指定版本时,SQL语句处理器会在程序和DBRM中创建一个版本标识符。 这会影响负载模块和DBRM的大小。 Db2 当您将DBRM绑定到软件包时,使用版本标识符。 如果在预编译时未指定版本,则空字符串为默认版本标识符。 如果指定AUTO,SQL语句处理器将使用一致性标记生成版本标识符。 如果一致性标记是时间戳,则时间戳将被转换为ISO字符格式,并用作版本标识符。 使用的日期时间戳基于商店时钟值。 |
| XREF5 | 包括列表输出中SQL语句中使用的符号的交叉引用列表。 |
注:
|
|
仅在使用 