首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

oracle 存储过程调用参数的有关问题,小白求解答

2013-08-26 
oracle 存储过程调用参数的问题,小白求解答我写的一个存储过程中,一个sql语句需要动态的更新查询条件,这个

oracle 存储过程调用参数的问题,小白求解答
我写的一个存储过程中,一个sql语句需要动态的更新查询条件,这个查询条件就又我调用存储过程的时候当作参数传进来,比如: UF_REPORT_TEMPLATE(aa in VARCHAR2)  我传了一个条件:aa  aa传入存储过程中的sql语句:select * from test where 1=1 aa  注:aa的值为 and var>1  然后系统提示:无效的关系运算符
   但是sql语句写成:select * from test where 1=1 and var=aa  就正确!
   求高手解答:如何把一个条件(如:a>1)当作参数传入存储过程,让sql语句能够调用!谢谢
[解决办法]
select * from test where 1=1 and var=aa 

你先说明白这个sql如何“正确”的,PL/SQL里面不允许直接写一个sql

如果你把它做游标用,那么open 游标 for '拼接后的SQL字符串'

如果你把它做into用,那么execute immediate '拼接后的SQL字符串' into 
[解决办法]
支持楼上的,
declare sqlstr varchar2(999),
        aa varchar2(40);
begin
 aa:=' and var>1';   --var 是你表中的一个字段
 sqlstr:='select * from test where 1=1'
[解决办法]
aa;
 execute immediate sqlstr;
end;

热点排行