gpt4 book ai didi

Oracle、动态sql和命名参数

转载 作者:行者123 更新时间:2023-12-01 11:06:06 27 4
gpt4 key购买 nike

(我发现这部分回答了问题,声明方式看起来会更整洁,因为我的 sql 将在 oracle 和 mssql 中使用:) Binding variables in dynamic PL/SQL

我有一些正在使用如下语法执行的动态 sql:

EXECUTE IMMEDIATE plsql_block USING employeeid, sortname;

然后我可以使用 :1、:2 等访问动态 sql 中的那些变量。我可以改用命名参数吗?像

EXECUTE IMMEDIATE plsql_block USING employeeid => employeeid 

然后使用 :employeeid 而不是依赖位置在动态 sql 中访问它们?

如果不是,我的想法是在 sql 的开头做这样的事情:

declare employeeid varchar(15 := :1; 

然后我可以根据自己的喜好更改动态 sql,而不必担心定位问题。

有没有更好的办法?

谢谢

最佳答案

你的解决方法是我过去使用的方法。
还有好旧DBMS_Sql ,它允许像您通过 OCI 那样绑定(bind)变量。 (这基本上就是 DBMS_Sql 似乎正在做的事情;-))

关于Oracle、动态sql和命名参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731249/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com