comm package: type test_record is record(v_test number); procedure p_test(vp_test_record in test_record);comm package body: procedure p_test(vp_test_record in test_record)
is
begin
dbms_output.put_line(to_char(vp_test_record.v_test));
end p_test;
------------------------------------------------------------------------------------------测试一:
declare
v_test comm.test_record;
begin
select 986 into v_test from dual;
comm.p_test(v_test);
end;
执行成功,打印 986
------------------------------------------------------------------------------------------测试二:
declare
v_test comm.test_record;
v_str varchar2(400);
begin
select 986 into v_test from dual;
v_str:='begin
comm.p_test(:1);
end;';
execute immediate v_str using v_test;
end;
执行出错
ORA-06550: 第 9 行, 第 33 列:
PLS-00457: 表达式必须是 SQL 类型
ORA-06550: 第 9 行, 第 3 列:
PL/SQL: Statement ignored
------------------------------------------------------------------------------------------请问是什么原因,有解决办法吗,谢谢!
is
begin
dbms_output.put_line(to_char(vp_test_record.v_test));
end p_test;
------------------------------------------------------------------------------------------测试一:
declare
v_test comm.test_record;
begin
select 986 into v_test from dual;
comm.p_test(v_test);
end;
执行成功,打印 986
------------------------------------------------------------------------------------------测试二:
declare
v_test comm.test_record;
v_str varchar2(400);
begin
select 986 into v_test from dual;
v_str:='begin
comm.p_test(:1);
end;';
execute immediate v_str using v_test;
end;
执行出错
ORA-06550: 第 9 行, 第 33 列:
PLS-00457: 表达式必须是 SQL 类型
ORA-06550: 第 9 行, 第 3 列:
PL/SQL: Statement ignored
------------------------------------------------------------------------------------------请问是什么原因,有解决办法吗,谢谢!
解决方案 »
- 为什么 pl/sql desc 不能用 还有 就是每次create 表老报错 说缺失右括号
- 大设计大实现
- 大整数读写库
- 求一个sql语句
- sql 如何把hzpcl_by /* 灰渣偏差率*/ 求和
- 问一下:ORACLE可以直接发布web services吗?
- 怎样让一个表的数据与一个视图的数据保持同步
- 用oracle操作sqlserver数据库的数据,oracle是否有sqlserver中的 OpenDataSource吗???????
- 请问怎样使JOB submit后就立刻执行?
- 关联查询时,有数据的表以空表表现出来
- 存储进程中,如何将long型变量转换成字符型?
- 动态sql语句和游标的问题!!
Cause: an expression of wrong type is in USING or dynamic RETURNING clause. In USING or dynamic RETURNING clause, an expression cannot be of non-SQL types such as BOOLEAN, INDEX TABLE, and record.
Action: change the expression type to a SQL type.