sqlplus存储过程
1. 如何查询oracle库中已经存在的存储过程
命令行:
sqlplus / as sysdba
select name from user_source where type='PROCEDURE';
可查看sys用户下所有存储过程名字
select text from user_source where name='XXX'
可查看该存储过程的内容
plSQLdevloper工具:
左侧找到‘Proceres’,点开之后即可查看当前用户的所有存储过程。
右键点击存储过程,选择‘view’可查看详细信息
2. oracle 怎样查看已经存在的函数,过程
工具sqlplus或者plsqldeveloper
方法一:sqlplus
①登录用户后,执行下面语句查看当前用户有哪些存储过程:
select name from user_source where type='PROCEDURE';
或者:
select object_name from user_proceres;
或者:
select object_name from user_objects where object_type='PROCEDURE' ;
②找到你所要查询的存储过程名字后,执行下面操作,可以看到存错过程内容:
select text from user_source where name ='xxxx';--(xxxx代表所要查询的存储过程名字)
------------------------------------------------
如果是函数,类似的方法,只需要把PROCEDURE,换成FUNCTION即可
-----------------------------------------------
方法二:pl/sql developer
打开该工具后,在最左侧可以看到如下截图,选择 My objects
3. 如何把oracle存储过程保存到数据库里
sqlplus 中直接敲入存储过程代码(create or replace procere ...), / 结束,
如果代码没有错误,该过程就被保存到数据库中。
可以用 exec 过程名 运行。
如果是plsql developer之类的工具,那更简单,编辑完存储过程后,有运行按钮,点击即可。
4. 用sqlplus命令窗口执行oracle 存储过程,关闭对话窗口后,存储过程仍然执行
我测试过,如果中途中断的话,存储过程不会再执行。如果存储过程里面没有写commit的话数据就不会变更。
createorreplaceproceret_emp(resoutvarchar2)is
begin
foriin1..100000loop
insertintoemp(empno,ename,hiredate)values(i,'Sysuser'||to_char(i),sysdate);
--commit;
endloop;
res:='OK';
exception
whenothersthen
rollback;
res:='NG;'||SQLERRM;
end;
5. PLSQL修改了存储过程如何编译保存
如果是在plsql developer中修改的,可以直接点那个齿轮图标,或者F8即可编译。
如果是在sqlplus中,那就敲入修改后的过程代码(create or replace procere...),最后以/结尾运行即可。
6. PL_sql如何执行oracle存储过程
要成功执行这个存储过程,你需要注意几点:
1.select * from ods_area; 不能直接在pl/sql 中作为语句执行。
应该用 select 字段 into plsql变量 from 表名;
的形式来获取表中的数据,保存到plsql变量中。
2. 存储过程的语法格式为:
create or replace procere area
is
--变量声明;
begin
--过程主体;
end area;
3. 如果存储过程代码无误,可以通过 "/" 来执行代码,编译存储过程。
4.通过exec 或 execute 来调用编译后的存储过程。
例如:
-- 创建procere:
create or replace procere area
is
num number ;
v_areaRecord al%ROWTYPE;
begin
--例子1
select * into v_areaRecord from al;
--例子2
select 12345 into num from al;
end area;
/
-- 通过 / 执行;
--调用
exec area;