create procedure insert_teacher(v_id number,v_name varchar2)
is
begin
insert into teacher
values (v_id,v_name);
end;
/提示创建成功
-------------------------------
我调用
SQL> call insert_teacher(2,'d');
call insert_teacher(2,'d')
*
第 1 行出现错误:
ORA-06575: 程序包或函数 INSERT_TEACHER 处于无效状态
------------------------------------------------------
is
begin
insert into teacher
values (v_id,v_name);
end;
/提示创建成功
-------------------------------
我调用
SQL> call insert_teacher(2,'d');
call insert_teacher(2,'d')
*
第 1 行出现错误:
ORA-06575: 程序包或函数 INSERT_TEACHER 处于无效状态
------------------------------------------------------
解决方案 »
- 动态生成字符串的问题?
- 有没有把oralce语句直接转换为sql server语句的工具啊
- SQL高手进ORACLE中如何取连号?
- 求sql习题
- 请教关于存储过程的标号处理问题
- 我在SQL*plus里能select 到一个表的几条记录,是通过存储过程插入的,但在表数据编辑器窗口里什么都没有,为什么?
- ORACLE8的用户权限问题
- 关于Access导入Oracle的问题
- 大家知不知道单CPU的企业版和标准版的Oracle 9i、DB2 v7.2和SQL 2000实际可以多少价钱买到??(正版)
- 请教各位如何导出序列?
- 为何oracle存储过程的返回值SQL语句执行的一半
- 一个自动备份的语句,系统提示错误,高分在线等
select text from user_source where name='MOBILE_STATUS_SUM_DATE3'
order by line;select dbms_metadata.get_ddl('TABLE','TEST') from dual;-- 若是函数的话,将 TABLE 修改为 FUNCTION ;若是包的话,将 TABLE 修改为 PACKAGE
-- 然后将查询出来的原代码,重新编译一下,看哪里出误,去修正其原代码!
我调用
SQL> call insert_teacher(2,'d');
-- 将 call 修改为: execexec insert_teacher(2,'d');-- 这样试试
BEGIN insert_teacher(2,'d'); END; *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00905: 对象 SYSTEM.INSERT_TEACHER 无效
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
2 id number(18,0),
3 name varchar2(20));表已创建。已用时间: 00: 00: 00.00
scott@SZTYORA>
scott@SZTYORA> create or replace procedure insert_teacher(v_id number,v_name varchar2)
2 is
3 begin
4 insert into teacher(id,name) -- 此处最好指定字段名,以防原表添加字段后,执行存储过程出错
5 values (v_id,v_name);
6 commit; -- INSERT、UPDATE 一般要提交一下
7 end;
8 /过程已创建。已用时间: 00: 00: 00.06
scott@SZTYORA> exec insert_teacher(2,'d');PL/SQL 过程已成功完成。已用时间: 00: 00: 00.00
scott@SZTYORA> select * from teacher; ID NAME
---------- ----------------------------------------
2 d已用时间: 00: 00: 00.01
scott@SZTYORA>
id number(18,0),
name varchar2(20));create or replace procedure insert_teacher(v_id number,v_name varchar2)
is
begin
insert into teacher(id,name) -- 此处最好指定字段名,以防原表添加字段后,执行存储过程出错
values (v_id,v_name);
commit; -- INSERT、UPDATE 一般要提交一下
end;
/exec insert_teacher(2,'d');