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;
展开
 我来答
流浪云风
2012-09-20 · TA获得超过4315个赞
知道大有可为答主
回答量:1119
采纳率:69%
帮助的人:932万
展开全部
通常出现这个错误,是语法不完整造成的。我检查过你的代码,其中没有语法问题,标点符号也正确。分号都是使用的英文小写。 是不是调用存在问题。
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中查看输出结果。
hu0829
2012-09-20 · TA获得超过2937个赞
知道大有可为答主
回答量:2251
采纳率:50%
帮助的人:2335万
展开全部
你参数T声明了都没使用呢?
输入参数T在那使用
把T输出来一下试试呢
CREATE OR REPLACE Procedure Testpro(t In Varchar2) Is
Act Varchar2(2);
Begin
Act := 'ok';
Dbms_Output.Put_Line(t||Act);
End;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式