У меня есть проблема с этим кодом в Oracle:ошибка при вызове хранимой процедуры из PHP
create or replace procedure InsertarEntertNotica (IDSUBTOPIC out varchar,
TEXT out varchar,IMAGE out varchar,STADE out varchar,TITT out varchar)
is
idS varchar2(3) := IDSUBTOPIC;
txt varchar2(4000) := TEXT;
img varchar2(100) := IMAGE;
st varchar2(2) := STADE;
fech varchar2(30);
tit varchar2(300) := TITT;
hor date;
begin
SELECT TO_CHAR(SYSDATE,'DD/MM/YY') into fech FROM DUAL;
SELECT SYSDATE into hor FROM DUAL;
insert into ENTERTAIMENT (IDSUBTEMA,TEXTO,IMAGEN,ESTADO,FECHA,TITULO,HORA)
values (idS,txt,img,st,fech,tit,hor);
end;
Когда я создаю этот SP, я не проблема, но когда я исполню ее у меня проблема
Error starting at line : 377 in command -
execute InsertarEntertNotica('ET','Texto de la Noticia Proc','','No','Noticia con Procedimiento')
Error report -
ORA-06550: line 1, column 28:
PLS-00363: expression 'ET' cannot be used as an assignment target
ORA-06550: line 1, column 33:
PLS-00363: expression 'Texto de la Noticia Proc' cannot be used as an assignment target
ORA-06550: line 1, column 60:
PLS-00363: expression '<null>' cannot be used as an assignment target
ORA-06550: line 1, column 63:
PLS-00363: expression 'No' cannot be used as an assignment target
ORA-06550: line 1, column 68:
PLS-00363: expression 'Noticia con Procedimiento' cannot be used as an assignment target
ORA-06550: line 1, column 7:
Ошибка указана в строке 377, но вы не указали 377 строк кода. Также я нахожу, что вы используете VARCHAR в качестве параметров, которые вы сразу переопределяете, поскольку VARCHAR2 внутри процедуры является нечетным. – kevinsky
Почему вы объявили параметры как OUT, когда вы, похоже, собираетесь передавать и использовать значения, а не устанавливать и возвращать их вызывающему? И почему локальные переменные просто принимают значения параметров? Вам действительно нужно сделать это с помощью процедуры вообще? –