SQL 创建程序时出错:PLS-00103:遇到符号 "AS"

SQL Error creating procedure: PLS-00103: Encountered the symbol "AS"

我正在进入程序的世界,但我遇到了这个我没有发现的错误。

我不需要补充任何东西,我不知道他为什么要"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);

我不是 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);