Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何在DB2ZOS中执行基于绑定变量的sql_Oracle_Db2_Db2 Zos - Fatal编程技术网

Oracle 如何在DB2ZOS中执行基于绑定变量的sql

Oracle 如何在DB2ZOS中执行基于绑定变量的sql,oracle,db2,db2-zos,Oracle,Db2,Db2 Zos,我正在尝试执行一个SQL,它由绑定变量组成。它在ORACLE DB中运行良好,但在DB2中则不行 下面是示例SQL:(UPPER/UCASE它可以是任何内容) 错误如下: db2 => SELECT Col1 FROM tab1 WHERE Col1 = 'abc' AND (UPPER(Col1) LIKE (UPPE R(:1) || '%' ESCAPE '\') ORDER BY 1 SQL0104N An unexpected token "1" was found follo

我正在尝试执行一个SQL,它由绑定变量组成。它在ORACLE DB中运行良好,但在DB2中则不行

下面是示例SQL:(UPPER/UCASE它可以是任何内容)

错误如下:

db2 => SELECT Col1 FROM tab1 WHERE Col1 = 'abc' AND (UPPER(Col1) LIKE (UPPE
R(:1) || '%' ESCAPE '\') ORDER BY 1
SQL0104N  An unexpected token "1" was found following "".  Expected tokens mayinclude:  "<IDENTIFIER>".  SQLSTATE=42601
db2=>从tab1中选择Col1,其中Col1='abc'和(Col1)LIKE(UPPE
R(:1)| |'%'转义'\')按1排序
SQL0104N在“”之后发现意外的标记“1”。预期的标记可能包括:“”。SQLSTATE=42601
我不确定,这里有什么问题。它没有提示输入绑定值。 在Oracle DB中,一切正常


在DB2中,我使用命令行执行查询。对于Oracle,我使用Oracle SQL developer。

您在Microsoft Windows上使用交互式CLP For DB2,同时连接到远程DB2-For-Z/OS数据库

此CLP接口没有任何在动态SQL中提示主机变量值的功能。这就是为什么您会收到错误消息的原因

您可以使用替代接口(例如IBMDataStudio或许多其他基于java的数据库前端工具),也可以继续使用OracleSQLDeveloper访问DB2forz/OS

您可以将“Oracle SQL Developer”配置为使用Db2 type-4 jdbc驱动程序(db2jcc4.jar)以及Db2 for Z/OS的许可文件(“db2jcc_license_cisuz.jar”)。您需要从大型机DBA或Passport Advantage获取Db2许可文件,或者通过Db2 connect网关服务器进行连接(在这种情况下,在运行Oracle SQL Developer的工作站上不需要单独的许可证文件)

但是,每个这样的工具对Db2-for-Z/OS的理解程度各不相同,因此,如果您遇到无法轻松解决的问题,请使用免费的IBM Data Studio,它可以与Db2-for-Z/OS、Db2-for-i和Db2-for-LUW一起使用


将SQL Developer配置为访问Db2已被广泛记录,包括在网站上,也有。所以请进行研究,这不是编程,而是配置。Stackoverflow用于编程问题。

您指的是哪个“命令行”?如果您在Windows、Linux或Unix上使用shell命令行(连接到z/os上的远程数据库时)然后它不提供参数标记提示。Oracle SQL Developer在正确配置和许可后应该能够使用远程Db2-for-Z/Os。是的,目前我使用的是Window cmd prompt。因此,您的建议是使用Oracle SQL Developer连接Db2?如果有任何参考文档来设置Oracle SQL和Db2Yeah之间的连接。它对我有效80%。现在我可以在Oracle SQL developer中看到DB2配置窗口。但我在建立连接时遇到了以下错误。执行请求的操作时遇到错误:[jcc][t4][2057][11264][3.72.24]应用程序服务器拒绝建立连接。试图访问数据库“DBNAME”,但未找到该数据库或该数据库不支持事务。ERRORCODE=-4499,SQLSTATE=08004供应商代码-4499
db2 => SELECT Col1 FROM tab1 WHERE Col1 = 'abc' AND (UPPER(Col1) LIKE (UPPE
R(:1) || '%' ESCAPE '\') ORDER BY 1
SQL0104N  An unexpected token "1" was found following "".  Expected tokens mayinclude:  "<IDENTIFIER>".  SQLSTATE=42601