在ORACLE 过程中,有一个STRING 变量或者VARCHAR变量,其中存放的是从一张表里边取出来的一条记录,这条记录有一个字段值,存放的是另一个过程名,那么在 过程里边如果执行这个 变量中存放的过程名指向的过程呢?比如:P_NAME STRING(200);SELECT P_NAME_COL INTO P_NAME FROM TAB_PRONAME ;--此时 P_NAME中存放的 是 NC_GET_INP(PARAM1,PARAM2,PARAM3);下边该如何执行在这个P_NAME中存放的 NC_GET_INP值呢,还有参数该怎么传进来呢?
解决方案 »
- 执行这个sql语句的时候,出resize错误
- 关于orcal的别名运用范围限制和子查询里的order by必须用在ruownum的矛盾问题。
- oracle语句筛选,请高人指点简洁写法
- ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
- 请高手指点,oracle高级模糊查询 like'%abcd%' 忽略 ‘abcd’的顺序
- ORACLE远程同步/复制到本地,顶者有分
- 有没有这样的数据库语句?
- 从sqlserver往oracle导数据
- 问一个搜索的问题
- sql 语句的错误
- unidac连接oracle问题
- C++ ORACLE执行不了SQL语句,查询也得不到返回记录,真不明白!急
过程名;
就行了吧
比如过程A中要调用过程B
create or replace procedure A()
begin
...codes
...
B;
...
end A;
CURSOR cur_pname AS
SELECT P_NAME_COL INTO P_NAME FROM TAB_PRONAME ;
v_pname cur_pname%ROWTYPE;OPEN cur_pname;
LOOP
FETCH cur_pname INTO v_pname;
EXIT WHEN cur_pname%NOTFOUND;
调用函数是通过这种方法将参数传进去。
NC_GET_INP(:v_pname.PARAM1,:v_pname.PARAM2,:v_pname.PARAM3);
1、有一个存储过程p_test如下:
create or replace procedure p_test
(
pi_1 varchar2,
pi_2 varchar2
)
as
begin
dbms_output.put_line(pi_1 || ',' || pi_2);
end p_test;2、用动态sql执行上面的存储过程:
declare
str_l_sql varchar2(1000);
begin
str_l_sql := 'begin p_test(:a, :b); end;';
execute immediate str_l_sql using 'test1', 'test2';
end;