我正在进入程序的世界,但我有未发现的错误。
我不需要添加任何其他内容,也不知道他为什么要求“ as”。
谢谢
错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
2/22 PLS-00103: Encountered the symbol "AS" when expecting one of the
following:
in out <an identifier> <a double-quoted delimited-identifier>
... long double ref char time timestamp interval date binary
national character nchar
代码:
CREATE OR REPLACE PROCEDURE INSERT_MOVIMIENTOS (
INSERTMOV_COD_BANCO AS NUMBER(4),
INSERTMOV_COD_SUCUR AS NUMBER(4),
INSERTMOV_NUM_CTA AS NUMBER(10),
INSERTMOV_FECHA_MOV AS DATE,
INSERTMOV_TIPO_MOV AS CHAR(1),
INSERTMOV_IMPORTE AS NUMBER(10)
)
DECLARE
sql_str VARCHAR2(500):='';
BEGIN
sql_str:=sql_str||'INSERT INTO MOVIMIENTOS (';
dbms_output.put_line(sql_str);
END;
/
EXEC INSERT_MOVIMIENTOS (0, 0, 0, '2008-11-11', 'o', 0);
答案 0 :(得分:1)
我不是Oracle方面的专家,但请注意:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_6009.htm
在声明输入参数时,您需要使用IN
而不是AS
。考虑到这一点,我会尝试这样做:
CREATE OR REPLACE PROCEDURE INSERT_MOVIMIENTOS (
INSERTMOV_COD_BANCO IN NUMBER(4),
INSERTMOV_COD_SUCUR IN NUMBER(4),
INSERTMOV_NUM_CTA IN NUMBER(10),
INSERTMOV_FECHA_MOV IN DATE,
INSERTMOV_TIPO_MOV IN CHAR(1),
INSERTMOV_IMPORTE IN NUMBER(10)
)
DECLARE
sql_str VARCHAR2(500):='';
BEGIN
sql_str:=sql_str||'INSERT INTO MOVIMIENTOS (';
dbms_output.put_line(sql_str);
END;
/
EXEC INSERT_MOVIMIENTOS (0, 0, 0, '2008-11-11', 'o', 0);