Oracle SQL Developer:能否向SQL脚本传递参数?

3

我有以下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 Developer中是否有一种方法可以将测试参数传递给这些值(在这种情况下为BARBAZQUXQUUXCORGE),或者我必须手动替换问号?谢谢!
更新:我一直在网上寻找答案,但没有找到;我找到的所有文章都没有涉及到FOO=?语法。我知道这是从Java程序访问(并在本例中从中删除)数据库的正确语法,但我想在将其嵌入程序之前测试SQL脚本。
1个回答

1
一种这样的查询称为预处理语句。它用作从程序向数据库发送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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接