oracle创建存储过程,代码如下,以前这样都没哟问题,现在不知道怎么会出现错误,请高手指教
createorreplaceproceduretestPro(tinvarchar2)isactvarchar2(2);beginact:='ok';dbms_outp...
create or replace procedure testPro(t in varchar2) is
act varchar2(2);
begin
act := 'ok';
dbms_output.put_line(act);
end;
PROCEDURE AMLUSER.TESTPRO 编译错误
错误:PLS-00103: 出现符号 "END"
行:7
文本:end testPro;
end testPro; 展开
act varchar2(2);
begin
act := 'ok';
dbms_output.put_line(act);
end;
PROCEDURE AMLUSER.TESTPRO 编译错误
错误:PLS-00103: 出现符号 "END"
行:7
文本:end testPro;
end testPro; 展开
2个回答
展开全部
通常出现这个错误,是语法不完整造成的。我检查过你的代码,其中没有语法问题,标点符号也正确。分号都是使用的英文小写。 是不是调用存在问题。
CREATE OR REPLACE PROCEDURE Testpro(t IN VARCHAR2) IS
Act VARCHAR2(2);
BEGIN
Act := 'ok';
Dbms_Output.Put_Line(Act);
END;
调用:
如果是sqlplus:
-----------------------------------------------------------------------------------------
SQL> set serveroutput on; --因为你使用了dbms_output.put_line,需要开数据库输出
SQL> execute testpro('1'); --调用你的过程,这里入参随便写了个“1”
结果:
ok
PL/SQL procedure successfully completed
-----------------------------------------------------------------------------------------
如果是plsql developer:
begin
testpro(t => :t);
end;
执行,然后从DBMS Output中查看输出结果。
CREATE OR REPLACE PROCEDURE Testpro(t IN VARCHAR2) IS
Act VARCHAR2(2);
BEGIN
Act := 'ok';
Dbms_Output.Put_Line(Act);
END;
调用:
如果是sqlplus:
-----------------------------------------------------------------------------------------
SQL> set serveroutput on; --因为你使用了dbms_output.put_line,需要开数据库输出
SQL> execute testpro('1'); --调用你的过程,这里入参随便写了个“1”
结果:
ok
PL/SQL procedure successfully completed
-----------------------------------------------------------------------------------------
如果是plsql developer:
begin
testpro(t => :t);
end;
执行,然后从DBMS Output中查看输出结果。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询