Я использую инструмент анализа данных, и у меня было требование принять значение от пользователя, передать его в качестве параметра и сохранить его в таблице. Довольно просто, поэтому я сел написать это
create or replace
procedure complex(datainput in VARCHAR2)
is
begin
insert into dumtab values (datainput);
end complex;
Я выполнил это в SQL Developer , используя следующую инструкцию
begin
complex('SomeValue');
end;
Работало нормально, и значение было вставлено в таблицу. Однако вышеприведенные операторы не поддерживаются в инструменте анализа данных, поэтому я прибегнул к использованию функции вместо этого. Ниже приведен код функции, которая компилируется.
create or replace
function supercomplex(datainput in VARCHAR2)
return varchar2
is
begin
insert into dumtab values (datainput);
return 'done';
end supercomplex;
Еще раз я попытался выполнить его в SQL Developer , но у меня не может выполнить операцию DML внутри запроса после выполнения следующего кода
select supercomplex('somevalue') from dual;
Мой вопрос
- Мне нужен оператор, который может запустить упомянутую функцию в SQL Developer или
- Функция, которая может выполнять то, что я ищу, которая может быть выполнена оператором select.
- Если невозможно выполнить то, что я спрашиваю, мне нужна причина, чтобы я мог сообщить своему менеджеру, как я совсем новичок (как неделя?), В PL / SQL, поэтому я не знаю правил и синтаксисы.
P.S. Как бы я хотел, чтобы это был C ++ или даже Java: (
EDIT
Мне нужно запустить функцию в SQL Developer, потому что перед запуском ее в DMine (которая является инструментом), чтобы проверить, является ли она действительной или нет. Все недопустимое в SQL также недопустимо в DMine, но не наоборот.
Спасибо за помощь, я понял ситуацию и почему нелегально / не рекомендуется