Oracle SQL 开发人员:可以将参数传递给 SQL 脚本吗?
Oracle SQL Developer: possible to pass parameters to SQL script?
我有以下 SQL 脚本(所有名称都替换为元句法变量):
DELETE FROM FOO
WHERE UPPER(BAR)=? AND UPPER(BAZ)=? AND UPPER(QUX)=? AND UPPER(QUUX)=? AND UPPER(CORGE)=?;
当我在 SQL Developer 中 运行 时,我收到以下错误,正如预期的那样:SQL Error: Missing IN or OUT parameter at index:: 1
在 SQL 开发人员中有没有办法将测试参数传递给这些值(在本例中,BAR
、BAZ
、QUX
、QUUX
, 和 CORGE
) 还是我必须手动替换问号?谢谢!
更新:我一直在网上寻找答案,但没有成功;我找到的 none 篇文章涉及 FOO=?
语法。我知道这是从 Java 程序访问(在这种情况下,从中删除)数据库的正确语法,但我想在将 SQL 脚本嵌入程序之前对其进行测试。
这样的查询称为准备好的语句。它用作将 SQL 语句从程序发送到数据库的一种方式。
首先你必须准备准备好的语句对象,然后你提供参数,最后执行语句。设置参数时,请按照问号在语句中出现的顺序引用每个问号。因此,在您的情况下,BAR 将是参数 1,而 CORGE 将是参数 5。
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
根据我的经验,测试这样的查询毫无用处。如果在测试时更方便,您可以将参数更改为变量甚至替换变量。
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch5.htm#i1211130
我有以下 SQL 脚本(所有名称都替换为元句法变量):
DELETE FROM FOO
WHERE UPPER(BAR)=? AND UPPER(BAZ)=? AND UPPER(QUX)=? AND UPPER(QUUX)=? AND UPPER(CORGE)=?;
当我在 SQL Developer 中 运行 时,我收到以下错误,正如预期的那样:SQL Error: Missing IN or OUT parameter at index:: 1
在 SQL 开发人员中有没有办法将测试参数传递给这些值(在本例中,BAR
、BAZ
、QUX
、QUUX
, 和 CORGE
) 还是我必须手动替换问号?谢谢!
更新:我一直在网上寻找答案,但没有成功;我找到的 none 篇文章涉及 FOO=?
语法。我知道这是从 Java 程序访问(在这种情况下,从中删除)数据库的正确语法,但我想在将 SQL 脚本嵌入程序之前对其进行测试。
这样的查询称为准备好的语句。它用作将 SQL 语句从程序发送到数据库的一种方式。
首先你必须准备准备好的语句对象,然后你提供参数,最后执行语句。设置参数时,请按照问号在语句中出现的顺序引用每个问号。因此,在您的情况下,BAR 将是参数 1,而 CORGE 将是参数 5。
http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
根据我的经验,测试这样的查询毫无用处。如果在测试时更方便,您可以将参数更改为变量甚至替换变量。
http://docs.oracle.com/cd/B19306_01/server.102/b14357/ch5.htm#i1211130