在MS-SQL中我可以做这样的事情
@myVar AS int;
@myVar = 12;
SELECT * FROM table WHERE field = @myVar;
这完全在DB2中爆炸 - 而且我不确定它是否特定于RDBMS,或者是否因为我已经搞砸了语法......
感谢任何帮助
答案 0 :(得分:0)
与ms-sql相比,db2 sql中可以动态执行的操作数量有限。您尝试尝试的大多数语法保留仅用于db2中的过程。请参阅此处的文档http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0004240.html,了解您可以在db2中动态执行的操作。
如果你可以动态提供参数值,只需使用
select * from table where field = ?;
当你运行它时,它会要求你提供parm的值。
答案 1 :(得分:0)
如果您使用ADO.NET数据提供程序连接到DB2 Express-C,则可以使用@
为绑定的SQL参数添加前缀。
我不确定其他DB2环境,但其他数据库中使用的常用符号是::
和?
,因此可能值得尝试其中一种。