为什么oracle 新建存储过程时,出现“创建过程带有编译错误” ,求大神们帮助。因为没财富了,所以没悬赏了

createorreplaceprocedureadd_t(ASSIGN_PKVARCHAR2,CLASS_PKVARCHAR2)ISBEGININSERTINTOadd... create or replace procedure add_t
(ASSIGN_PK VARCHAR2 , CLASS_PK VARCHAR2)
IS
BEGIN
INSERT INTO add_t values(ASSIGN_PK,CLASS_PK);
END;
展开
 我来答
badkano
2013-01-30 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部
先不说别的,就是insert into后必须要提交,否则插不进数据造成表被锁
再一个,你那俩参数ASSIGN_PK和CLASS_PK 是要输答羡入的么?
输入的话要加上in,要不是输入,在后边取出的,至少也得赋值咐厅,这衡举隐里就姑且当做你是要输入的两个参数吧。

create or replace procedure add_t
(ASSIGN_PK IN VARCHAR2 ,
CLASS_PK IN VARCHAR2)
IS
BEGIN
INSERT INTO add_t values(''||ASSIGN_PK||'',''||CLASS_PK||'');
commit;
END;
匿名用户
2013-01-30
展开全部
SQL> create or replace procedure add_t
2 (ASSIGN_PK VARCHAR2 , CLASS_PK VARCHAR2)
3 IS
4 BEGIN
5 INSERT INTO add_t values(ASSIGN_PK,CLASS_PK);
6 END;
7 /
警告: 创建慧衫的过漏慎程带有编译错误。

SQL> show err
PROCEDURE ADD_T 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/3 PL/SQL: SQL Statement ignored
5/15 PL/SQL: ORA-04044: 此处不允许过程, 函数, 程序包或类型

你这个存储过程名前搜腔字 add_t
INSERT INTO add_t

表名字也叫 add_t
估计问题在这里。

简单输出, 是编译通过的。

SQL> create or replace procedure add_t
2 (ASSIGN_PK VARCHAR2 , CLASS_PK VARCHAR2)
3 IS
4 BEGIN
5 -- INSERT INTO add_t values(ASSIGN_PK,CLASS_PK);
6 dbms_output.put_line('Hello ' || ASSIGN_PK || '!');
7 END;
8 /
过程已创建。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式