我使用动态sql创建了一个过程,但无法成功运行它。Oracle动态运行错误
create or replace procedure getdata(string par1, results out cursor)
as
declare sqlBase varchar2(100);
begin
sqlBase := 'open '||results|| ' for select * from studetns';
end;
运行后,下面的错误信息弹出:
PLS-00306,错号码或类型的调用参数 '||'
我只是需要通过一些参数来过滤数据,但有些参数可能为空或空, ,所以我需要过滤动态。就像if(par1不为null)那么........ 所以在这里我需要使用动态sql。在C#程序中,使用游标返回结果。 喜欢这里,我用光标类型打开select语句。
但在sql编辑器中,我得到正确的sql语句。
有人可以帮助我吗?
你是对的,谢谢你。 'string'与'varchar2'相同。 –
我需要使用par来过滤数据。有多个参数。在这里,我只列出一个参数。使用光标返回选择结果。 –
然后在select语句中添加'where name = par1'。 –