我从程序开始,我迷失了这些问题。
我不明白为什么在添加过程时会出现错误,因为我认为这没问题,而且最终也不会导致错误。
我附上代码。
错误:
线路/颜色错误
10/1 PLS-00103:出现符号“ DECLARE”
16/4 PLS-00103:预期以下情况之一时遇到符号“文件结尾”:
(如果循环mod null pragma引发return select update时,则为goto声明结束异常退出,而<< <<继续关闭当前删除取回锁插入打开回滚保存点设置sql执行commit forall合并管道清除
代码:
CREATE OR REPLACE PROCEDURE INSERT_MOVIMIENTOS (
INSERTMOV_COD_BANCO IN NUMBER,
INSERTMOV_COD_SUCUR IN NUMBER,
INSERTMOV_NUM_CTA IN NUMBER,
INSERTMOV_FECHA_MOV IN DATE,
INSERTMOV_TIPO_MOV IN CHAR,
INSERTMOV_IMPORTE IN NUMBER
);
DECLARE
sql_str VARCHAR2(500):='';
BEGIN
sql_str:=sql_str||'INSERT INTO MOVIMIENTOS (';
dbms_output.put_line(sql_str);
END;
/
答案 0 :(得分:1)
示例语法:
create or replace procedure insert_movimientos
( insertmov_cod_banco in number
, insertmov_cod_sucur in number
, insertmov_num_cta in number
, insertmov_fecha_mov in date
, insertmov_tipo_mov in varchar2
, insertmov_importe in number )
is
sql_str varchar2(500) := 'INSERT INTO MOVIMIENTOS (';
begin
dbms_output.put_line(sql_str);
end;
/
斜杠用于客户端应用程序,因此根据所使用的工具,可能不需要使用斜杠。
我更改了insertmov_tipo_mov
的数据类型。 char
添加了没人需要的空格,主要是为了ANSI兼容性而提供的。最好使用标准类型。
更好的是,使用table name.columnname%type
将其锚定到相应表列的类型。
许多在线示例都是大写的,没有明确的原因。通常,您不要大写计算机代码。
答案 1 :(得分:0)
删除多余的;
,或写IS
创建过程的语法
CREATE OR REPLACE PROCEDURE INSERT_MOVIMIENTOS (
...
)
IS
sql_str VARCHAR2(500):='';
...
;