在PL/SQL中使用带有动态SELECT INTO子句的bind变量

关于PL/SQL中的动态SQL语句中可以在何处使用绑定变量,我有一个问题

例如,我知道这是有效的:

创建或替换函数get_num_员工(p_loc VARCHAR2,p_job VARCHAR2)
返回号码
是
v_query_str VARCHAR2(1000);
v_num_员工人数;
开始
v_query_str:=“从emp中选择计数(*)”
||p_loc
||'WHERE job=:bind_job';
立即执行v_query_str
员工数量
使用p_作业;
返回员工的v_num_;
终止
/

我想知道您是否可以在这样的select语句中使用绑定变量

创建或替换函数get_num_员工(p_loc VARCHAR2,p_job VARCHAR2)
返回号码
是
v_query_str VARCHAR2(1000);
v_num_员工人数;
开始
v_query_str:=“选择COUNT(*)INTO:INTO_bind FROM emp”
||p_loc
||'WHERE job=:bind_job';
立即执行v_query_str
使用员工的v_数量,p_工作;
返回员工的v_num_;
终止
/

注意:我使用SELECT INTO语句作为动态字符串,并在INTO子句中使用bind变量

我现在正在旅行,有几天在家里都不能使用我的电脑,但这让我有点烦躁。尝试读取PL/SQL引用,但他们没有这样的select示例

谢谢

在我看来,动态PL/SQL块有些模糊。虽然是非常灵活的,但也很难调整,很难调试,也很难找出问题所在。
我投票给你的第一个选择

使用p_作业对员工的v_num_执行即时v_查询\u str;

两者都使用绑定变量,但首先,对我来说,它比@jonearles选项更可重新定义和调整

发表评论