Я создал процедуру с динамическим 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, неправильное число или типы аргументов в вызове '||'
Мне просто нужно отфильтровать данные по некоторым параметрам, но некоторые параметры могут быть пустыми или пустыми, , поэтому мне нужно отфильтровать динамические. например, если (par1 не null), то ........ , поэтому здесь мне нужно использовать динамический sql. в программе C# используйте курсор для возврата результата. , как здесь, я использую тип курсора для открытия операторов выбора.
но в редакторе sql я получаю правильное заявление sql.
Может ли кто-нибудь помочь мне в этом?
Вы правы, спасибо за это. 'string' совпадает с' varchar2'. –
Мне нужно использовать пар для фильтрации данных. существует несколько параметров. здесь я просто перечисляю один параметр. используйте курсор для возврата результата выбора. –
Затем просто добавьте 'where name = par1' в оператор select. –