
Oracle PL/SQL
文章平均质量分 85
iqlife
不管到哪,我的心依旧属于你
不管什么职业,我最中意的还是你
不管今后怎样,我都一如既往的爱着你
我的女神--IT!
展开
-
[可变数组]
变长数组:是一个存储有序元素的集合,每个元素都有一个索引,该索引相对应元素在数组中的位置。变长数组存在大小的限制,但是可以动态进行更改。 创建变长数组语句: Create Type varray_phone as varray(3) of varchar2(50); 接下来应用这个变长数组,先创建一个人员表,人员表中拥有一列电话,类型是变长数组,意思是这个人原创 2009-10-21 10:32:00 · 1745 阅读 · 0 评论 -
oracle keep(first/last)
先看一段ORACLE官方文档http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96520/analysis.htm#25806:FIRST/LAST FunctionsThe FIRST/LAST aggregate functions allow you to return the result of a原创 2010-05-18 11:02:00 · 5979 阅读 · 1 评论 -
oracle角色关联查询
<br />今天看到一篇帖子问题是关于角色查询的,此角色表设计得不是很理想,但是还是能满足角色设计的基本要求的,就是查询起来可能会比较麻烦,<br />大致信息如下:<br />表i_project_permit<br />----------------------------------------------------------------<br />| User | ProjectID | GroupCode | RoleCode | PermitCode |<br />------------原创 2010-07-13 14:36:00 · 3003 阅读 · 0 评论 -
oracle sql*plus set &spool介绍(二)
Oracle spool 用法小结[半转半加]关于SPOOL(SPOOL是SQLPLUS的命令,不是SQL语法里面的东西。)对于SPOOL数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句如:select empno||,||ename||,||sal from emp;spool常用的设置set colsep ; //域输出分隔符set echo原创 2010-05-28 16:59:00 · 4015 阅读 · 1 评论 -
oracle sql*plus set &spool介绍(一)
1). 设置当前session是否对修改的数据进行自动提交 :SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n} SQL> set autocommit off 2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 :SET ECHO {ON|OFF} SQL> set echo on 3).是否显示当前sql语句查询或修改原创 2010-05-28 14:53:00 · 1732 阅读 · 0 评论 -
字符串分割(二)
<br />之前写了一篇使用函数进行字符串解析的BLOG:http://blog.youkuaiyun.com/java3344520/archive/2010/07/13/5731758.aspx<br />这两天整理以前学习和记录的知识点时候发现一篇简单分解字符串的SQL语句,共享如下:<br />select a from<br />(<br />select substr('a,b,c,d,e',rownum,1) a from dual<br />CONNECT BY rownum<=length('a,原创 2010-08-04 17:15:00 · 956 阅读 · 0 评论 -
Oracle 导出导入XML
Oracle 导出导入XML,准确来说是服务器端的导入导出,客户端的话需要事先通过应用程序传送到服务器端目录下..一般应用的话是不会在服务器端进行解析的,除非是DBA操作,作为学习看了解下,以下通过测试,测试环境ORACLE 9I 版本号,9.0.2.1创建测试表:CREATE TABLE PEOPLE( PERSONID VARCHAR2(10) PRIMARY KEY, NAME VARCHAR2(20), ADDRESS VARCHAR2(60), TEL VARCHAR2(20),转载 2010-06-14 14:36:00 · 11172 阅读 · 2 评论 -
Oracle 索引(一)
在Oracle中,索引可以分为逻辑设计和物理实现:逻辑角度: Single column 单列索引、Concatenated 多列索引(复合索引)、Unique 唯一索引、NonUnique 非唯一索引、Function-based函数索引、Domain 域索引(数据库以外的索引,如文件等)、interMedia全文索引等物理实现: Partitioned 分区索引、NonPartitioned 非分区索引、B-tree索引、Rever Key 反转型B树(这种分类是B-tree索引的一种)、B转载 2010-11-25 18:26:00 · 1991 阅读 · 0 评论 -
分析函数之分析语句学习--Over(Analytic_clause)
<br />问题帖子:http://topic.youkuaiyun.com/u/20110212/11/d16c9fe3-ae21-48af-878d-37ec597b5f9e.html?46437<br /> <br />分析这样的问题,刚开始我还以为是数据的问题造成的,可是仔细想想,不应该的,于是从最明显的分析函数入手,官方文档如下<br />http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions085.htm#SQLRF0原创 2011-02-12 14:34:00 · 1106 阅读 · 0 评论 -
ORACLE 10进制转换2进制
之前写了个转换函数,发现当数据为负数的时候,无法转换,因为业务前端入库的数据是32位,当JAVA进行有符号转换为INT类型的时候,会产生负数,而我要再次转换为二进制进行位的判断,网上找了好多,都不能做有符号数字的转换,因此按照负数的二进制表示法重新写了个函数:负数的二进制方法原创 2011-08-13 19:59:16 · 4735 阅读 · 0 评论 -
ORACLE 树查询
昨天优快云里处理问题的时候,发现了一个语法connect_by_root,眼前一亮,好像没有见过,经常用的只是connect by ,于是翻开文档重新学习了下先看自带的SCHEMA的SCOTT的数据:SQL>SELECT e.empno,e.ename,e.mgr,e.原创 2011-09-29 14:13:47 · 1914 阅读 · 3 评论 -
BFILENAME加载图片示例
--创建测试表CREATE TABLE my_blobs ( dname VARCHAR2(30), --目录名称 sname VARCHAR2(30), --目录描述 fname VARCHAR2(30), -- 文件名称 fblob BLOB); --图片--授权创建目录SQL> conn / AS SYSDBAConnected to Or转载 2012-06-01 14:14:41 · 1895 阅读 · 0 评论 -
PLSQL调试技巧
1:调试技巧大家调试游标的时候通常使用的都是直接在存储过程里DBMS_OUTPUT包来进行打印信息的,示例如下:CREATE OR REPLACE PROCEDURE SP_EMP_FOR(P_DEPTNO IN NUMBER) IS TYPE EMP_ROW_TYPE IS TABLE OF EMP%ROWTYPE INDEX BY BINARY_INTEGER; EMP_R原创 2012-06-08 14:07:37 · 6844 阅读 · 0 评论 -
DETERMINISTIC 关键字详解
DETERMINISTIC Clause1、DETERMINISTIC 官方说明Specify DETERMINISTIC to indicate that the function returns the same result value wheneverit is called with the same values for its arguments.You must s原创 2012-06-09 09:02:32 · 5169 阅读 · 0 评论 -
ORACLE客户端乱码--修改Oracle客户端字符集
修改Oracle客户端字符集方法:1:可以通过修改注册表键值永久设置,类似于这样的键值:HKEY_LOCAL_MACHINE/SOFTWARE/Oracle/HOME0下,如一般的简体中文nls_lang=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 2:查看数据库当前字符集参数设置SQL> select userenv(language) from du原创 2010-04-10 11:04:00 · 39345 阅读 · 4 评论 -
Oracle的优化器有两种优化方式(二)
15. /*+USE_CONCAT*/ 对查询中的WHERE后面的OR条件进行转换为UNION ALL的组合查询. (懵懂啊,先存着)例如: select /*+use_concat */ * from emp where deptno=10 OR empno=7788;Execution Plan---------------------------------------------转载 2010-04-19 14:31:00 · 2332 阅读 · 0 评论 -
oracle周数计算[转补]
=========================================================================--日期计算,算第n周的第一天及最后一天是几号。 by keynes 2005.04.29=========================================================================-- ww的算法转载 2009-11-05 14:45:00 · 2373 阅读 · 0 评论 -
游标属性
当执行一条DML语句后,DML语句的结果保存在四个游标属性中,这些属性用于控制程序流程或者了解程序的状态。当运行DML语句时,PL/SQL打开一个内建游标并处理结果,游标是维护查询结果的内存中的一个区域,游标在运行DML语句时打开,完成后关闭。隐式游标只使用SQL%FOUND,SQL%NOTFOUND,SQL%ROWCOUNT三个属性.SQL%FOUND,SQL%NOTFOUND是布尔值,SQ转载 2009-11-11 12:00:00 · 561 阅读 · 0 评论 -
DIRECTORY目录操作实践和认识
操作过程:****以sys用户登陆:执行第一,第二1.文件操作目录的设定CREATE DIRECTORY recv_area AS d:/test ;CREATE DIRECTORY send_area AS d:/test ;2.目录的操作权限设定GRANT READ ON DIRECTORY recv_area TO wangyh;GRANT WRITE ON DIRECTORY s原创 2009-11-09 11:33:00 · 1255 阅读 · 0 评论 -
oracle发送邮件存储过程:
oracle发送邮件存储过程:create or replace procedure bsd_sendemail(p_receiver varchar2,p_sub varchar2,p_txt varchar2)isp_user varchar2(30):=;p_pass varchar2(30):=;p_sendor varchar2(20):=Gnie;p_server va转载 2009-11-25 09:01:00 · 1726 阅读 · 0 评论 -
[转]在oracle下触发器实现主键自增
利用序列产生主键值。 序列(Sequence)是一种可以被多个用户使用的用于产生一系列唯一数字的数据库对象。序列定义存储在数据字典中,通过提供唯一数值的顺序表来简化程序设计工作,可以使用序列自动产生主键的键值。当一个序列第一次被查询调用时,它将返回一个预定值。在随后的每次查询中,序列将产生一个按指定的增量增长的值。序列可以循环,或者是连续增加的,直到指定的最大值为止。 创建序列语法如下:creat原创 2009-11-30 18:11:00 · 36284 阅读 · 9 评论 -
Oracle对目录文件(directory)的读写操作
Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性。其语法为:create or replace directory exp_dir as /tmp;目录创建以后,就可以把读写权限授予特定用户,例如:grant read, write on directory exp_dir to eygle;此时用户eygle原创 2010-01-27 09:26:00 · 26667 阅读 · 0 评论 -
[转]Oracle角色、权限
Oracle内置角色connect与resource的权限 ============================================================ 一、何为角色? 如果有一组人,他们的所需的权限是一样的,对他们的权限进行管理的时候会不方便。因为你要对这组中的每个用户的权限都进行管理。 有一个很好的解决办法就是:角色。角色是一组权限的集合,将角色赋给转载 2009-12-03 14:03:00 · 1371 阅读 · 1 评论 -
ORACLE用LIMIT实现类似分页
练习了ORACLE类似的分页,目的:ORACLE的LIMIT使用declaretype name_arrary_type is varray(20) of varchar2(10);name_arrary name_arrary_type;rowss int:=&输入页记录数;dpno int:=&输入部门号;v_count int:=0;cursor emp_cursor(dpno in原创 2010-02-20 11:30:00 · 6453 阅读 · 0 评论 -
Oracle更新多行
更新多行的步骤:步骤多,但效率比较高: 1、create table 临时表 value (select a.id,a.name,b.name,... from table1 a,table2 b where a.id=b.id) 2、删除table1中的记录,不要drop 3、insert into table1 select 你需要的字段 from 临时表。 select *原创 2009-12-17 00:12:00 · 1693 阅读 · 0 评论 -
ORACLE 纯度级别(PURITY)
PRAGMA RESTRICT_REFERENCES(),这个PRAGMA比较复杂, 总的来说,它是一个程序辅助检验码,检查子程序的纯度(PURITY),帮助检验子程序是否有违反规则的地方。一般用在函数上,但当函数调用过程时,也要作相应的设置检查。这是为了避免当在DML语句上调用函数时正常执行不至于产生错误。 语法,PRAGMA RESTRICT_REFERENCES(function_原创 2010-02-24 15:08:00 · 1145 阅读 · 0 评论 -
视图使用规则和限制[转]
看到一篇视图的使用注意事项,虽然都未曾遇到过,转载下,以后借鉴下:使用数据库视图通常出于以下两个目的:1。降低操作复杂度;视图是预编译的查询操作,一次定义,之后可快速调用;2。提高系统安全。视图作为数据库对象,可以将其权限独立出来赋给用户,可避免用户对基表的盲目危险操作,同时也可屏蔽一部分私密的属性列。定义语句: CREATE [OR REPLACE ] [FORCE |NOFORCE转载 2010-03-03 15:40:00 · 1934 阅读 · 0 评论 -
ORACLE 对象的使用
--创建对象类型create or replace type emp_typ as object (id number,name varchar2(30),sal number,comm number,member procedure change_comm(new_comm number),member function get_info return varchar2) ;--创建对象类原创 2010-03-12 15:11:00 · 1100 阅读 · 2 评论 -
ORACLE COMMIT以及ROLLBACK机制
[摘自]ORACLE9i_优化设计与系统调整[好书]§1.4.2 COMMIT语句处理顺序当事务提交时,Oracle分配一个唯一的顺序号SCN(System Change Number)给事务。数据库恢复总是基于该SCN号来进行处理。SCN号是记录在控制文件、数据文件、块头及重做日志文件中。 1.COMMIT处理步骤: Oracle 在下面情况提交事务: l转载 2010-03-23 09:12:00 · 4513 阅读 · 0 评论 -
oracle 调用webservice
之前做了个oracle 调用webservice,由于要离职了,公司没有可以接手的人,所以用oracle调用webservice的方案就没有做了,改用java来做了,说是好交接,没有办法,所以没有完整的用oracle实现调用webservice了,不过文档里将基本的都将难点解决了。文档目录如下:Webservice实现... 1Java编写简单的WebService实例... 1目原创 2013-05-25 11:31:13 · 6149 阅读 · 0 评论