免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7303 | 回复: 23
打印 上一主题 下一主题

[请大家一起整理]oracle中的经常用到的包 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-09-16 14:36 |只看该作者 |倒序浏览
oracle中有很多经常用到的包,他们功能强大,能够完成很多复杂,和不可想象的任务,所以我想请大家帮忙整理出来,不管是高手还是新人只要有对某个包比较熟悉,或者对他的一种使用方法比较熟悉,请帮忙跟贴,对大家的管理工作应该都会有很大帮助的。我先抛砖引玉写一个,希望版主和同志们帮忙。
------------------------------------------------------------------------------------
DBMS_SQL
一:)带有参数及解释
1、OPEN_CURSOR:返回新游标的ID值
2、PARSE:解析要执行的语句
3、BIND_VARIABLE:将给定的数量与特定的变量相连接
4、DEFINE_COLOUMN:定义字段变量,其值对应于指定游标中某个位置元素的值
(仅用于SELECT语句)
5、EXECUTE:执行指定的游标
6、EXECUTE_AND_FETCH:执行指定的游标并取记录
7、FETCH_ROWS:从指定的游标中取出记录
8、COLUMN_VALUE:返回游标中指定位置的元素
9、IS_OPEN:当指定的游标状态为OPEN时返回真值
10、CLOSE_CURSOR:关闭指定的游标并释放内存
11、LAST_ERROR_POSITION:返回出错SQL语句的字节偏移量
12、LAST_ROW_ID:返回最后一条记录的ROWID
13、LAST_SQL_FUNCTION_CODE:返回语句的SQL FUNCTION CODE

二:使用实例:
CREATE OR REPLACE
procedure dml_sql (the_rq varchar2) as
The_c1 Integer;
The_result Integer;              --dml_sql_result
M_jls number;
The_xh varchar2(2);
Begin
The_xh:=lpad(ltrim(the_rq),2,'0');
The_C1 :=Dbms_sql.open_cursor;
Dbms_sql.parse(the_C1,'select count(*) from user_indexes
where table_name =''ZDCHB'''||the_xh,dbms_sql.v7);
Dbms_sql.define_column(the_c1,1,M_jls);
The_result:=Dbms_sql.execute(The_c1);
If dbms_sql.fetch_rows(cursor1) >; 0 then
Dbms_sql.column_value(cursor1,1,M_jls);
End if;
Dbms_sql.close_cursor(The_C1);
End;

大家不一定按这个模式来,也不一定要写的这么复杂,知道多少就写多少,整理出来,以后如果能够想用什么包到chinaunix里都能查到,就好了,呵呵!

论坛徽章:
0
2 [报告]
发表于 2003-09-16 15:03 |只看该作者

[请大家一起整理]oracle中的经常用到的包

二:dbms
DBMS_JOB 包介绍
调度任务队列里的任务要使用DBMS_JOB包中的过程。使用任务队列不需要特别的数据库特权。任何可以使用这些过程的用户都可以使用任务队列。
1:参数
SUBMIT  
-- 向任务队列提交一个任务
REMOVE  
-- 从任务队列中删除指定的任务
CHANGE  
-- 改变任务
WHAT  
-- 改变指定任务的任务内容
NEXT_DATE  
-- 改变指定任务的下一次执行时间
INTERVAL  
--改变指定任务的执行时间间隔。
BROKEN  
-- 禁止指定任务的执行
RUN  
--强制执行指定的任务
----------------------------------------------------------------------------------------------------------------------
2:使用方法
1)向任务队列提交一个任务(submit)
DBMS_JOB.SUBMIT(  job             OUT    BINARY_INTEGER,
                  what             IN    VARCHAR2,
                  next_date        IN    DATE DEFAULT SYSDATE,
                  interval         IN    VARCHAR2 DEFAULT 'null',
                  no_parse         IN    BOOLEAN DEFAULT FALSE)

其中interval指定方式为:
'SYSDATE + 7'     每7天一次
'SYSDATE + 1/48'  每半个小时一次
'NEXT_DAY(TRUNC(SYSDATE), ''MONDAY'') + 15/24' 每个礼拜一的下午3点执行
  'NEXT_DAY(ADD_MONTHS(TRUNC(SYSDATE, ''Q''), 3), ''THURSDAY'')'每个季度的第一个星期四  

2)删除任务队列中的任务(remove)
DBMS_JOB.REMOVE(job IN BINARY_INTEGER)
The following statement removes job number 14144 from the job queue:
DBMS_JOB.REMOVE(14144);
3)指定任务的任务内容(WHAT)
DBMS_JOB.WHAT( job                      IN  BINARY_INTEGER,
         what                           IN  VARCHAR2)
4)指定下次执行时间,如果你暂时不想让它执行可以设成3004年,呵呵!(next_date)
DBMS_JOB.NEXT_DATE( job        IN  BINARY_INTEGER,
next_date                      IN  DATE)
5)指定任务的执行时间间隔(NTERVAL)
DBMS_JOB.INTERVAL( job                  IN BINARY_INTEGER,
         interval                       IN VARCHAR2)
-----------------------------------------------------------------------------------------------------------------------
3:查询状态
显示任务的状态和失败执行的次数。

SELECT job, next_date, next_sec, failures, broken
  FROM user_jobs;

JOB        NEXT_DATE NEXT_SEC FAILURES    B
---------- --------- -------- ----------  -
  9125    01-NOV-94 00:00:00      4       N
14144    24-OCT-94 16:35:35      0       N
41762    01-JAN-00 00:00:00     16       Y

显示当前运行的任务的信息。

SELECT sid, r.job, log_user, r.this_date, r.this_sec
  FROM dba_jobs_running r, dba_jobs j
  WHERE r.job = j.job;
SID        JOB        LOG_USER            THIS_DATE  THIS_SEC
---------- ---------- -------------------- ---------   --------
12        14144     JFEE                 24-OCT-94  17:21:24
25         8536     SCOTT                24-OCT-94  16:45:12

论坛徽章:
0
3 [报告]
发表于 2003-09-16 16:44 |只看该作者

[请大家一起整理]oracle中的经常用到的包

支持,我是ORACLE初学者,请问ORACLE的包有何作用,谢谢

论坛徽章:
0
4 [报告]
发表于 2003-09-17 09:23 |只看该作者

[请大家一起整理]oracle中的经常用到的包

有关oracle Supplied PL/SQL Packages 的详细资料,包含在oracle document里
http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612/toc.htm
http://download-west.oracle.com/docs/cd/B10501_01/appdev.920/a96612.pdf

大家可以参考,然后把实际用法给整理一下

论坛徽章:
0
5 [报告]
发表于 2003-09-17 10:43 |只看该作者

[请大家一起整理]oracle中的经常用到的包

我怎么怎么看怎么觉得rolling兄象oracle 800热线支持的,呵呵!

论坛徽章:
0
6 [报告]
发表于 2003-09-17 11:18 |只看该作者

[请大家一起整理]oracle中的经常用到的包

论坛徽章:
0
7 [报告]
发表于 2003-09-17 11:55 |只看该作者

[请大家一起整理]oracle中的经常用到的包

good

论坛徽章:
0
8 [报告]
发表于 2003-09-18 12:12 |只看该作者

[请大家一起整理]oracle中的经常用到的包

太多了,
需要用的时候再去找吧
chinesehuman 该用户已被删除
9 [报告]
发表于 2003-09-21 10:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
10 [报告]
发表于 2003-09-25 12:26 |只看该作者

[请大家一起整理]oracle中的经常用到的包

我有全部的,
不过日文的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP