存储过程2

来源:互联网 发布:淘宝大学电商总裁班 编辑:程序博客网 时间:2024/06/16 15:58

如何得到存储过程P_DEL_PROCESSION_LOG的创建脚本

视图USER_SOURCE/DBA_SOURCE用于描述存储过程创建的脚本,查询这个视图可以得到存储过程创建的脚本
select text from user_source where  name='P_DEL_PROCESSION_LOG' and type ='PROCEDURE';这里得到的是一段不完整的脚本,不能直接运行,需在输出前加上create or replace

如何得到数据库中无效的存储过程

视图字典视图DBA_OBJECTS用于描述数据库中的所有对象,查询视图DBA_OBJECTS可以知道数据库中有那些无效的存储过程
select * from dba_objects where object_type ='procedure' and status ='invalid';

如何在存储过程中建表

使用动态SQL可以执行DDL语句
方法一:create or replace procedure create_table
is
v_cursor NUMBER; --定义游标
v_createStringVARCHAR2(100);--这个变量存放创建表的SQL语句
begin
v_cursor := DBMS_SQL.OPEN_CURSOR;--打开游标
v_createString :='create table a (id int ,name varchar2(20))';--创建表的SQL语句
DBMS_SQL.PARSE(v_cursor,v_createString,DBMS_SQL.v7)--执行建表的SQL语句
DBMS_SQL.CLOSE_CURSOR(v_cursor);--关闭游标
end create_table;
方法二:create or replace procedure create_table
as
pstring varchar2(2000);
begin
pstring :='create table a(id int,name varchar2(20))';--创建表的SQL
execute immediate p_string;--创建表
end;
/

如何知道存储过程中引用了哪些表

从DBA_DEPENDENCIES中,可以查出一个存储过程引用了哪些表
column referenced_name format A12;
select referenced_type,referenced_owner,referenced_name from DBA_DEPENDENCIES where name =‘procedure_name’ and owner =‘owner’ and upper (referenced_type) ='TABLE'/
0 0
原创粉丝点击