![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pl/sql
文章平均质量分 61
jgmydsai
道森oracle讲师,课程:sql高级查询改写
展开
-
使用ORACLE函数实现按汉字拼音首字母查询
from:http://www.codesky.net/article/201010/141945.htmlCREATE OR REPLACE FUNCTION F_TRANS_PINYIN_CAPITAL(P_NAME IN VARCHAR2) RETURN VARCHAR2 AS V_COMPARE VARCHAR2(100); V_RETURN VARCHAR2(4000)转载 2013-09-04 09:34:34 · 3359 阅读 · 0 评论 -
根据当前值重建sequence
大家知道oracle中的序列与表之前没有必然的关系,一个序列可以给一个表使用也可以给另一个一使用。所以最好增加字典表及文档来保存序列与表之间的对应关系。那最好这些都没有怎么办呢?有一个系统中是根据触发器来调用序列,通过触发器我们可以找到表与序列之间的对应关系SELECT NAME, MAX(CASE referenced_type WHEN原创 2015-04-18 13:33:56 · 1098 阅读 · 0 评论 -
阅读笔记 dbms_fga 包的使用,对表设定审计策略
from 阅读笔记 dbms_fga 包的使用,对表设定审计策略piner的文章: http://www.oracle.com.cn/thread-3582-1-162.htmlhttp://www.oracle.com.cn/thread-1824-1-1.html 使用dbms_fga包可以,审计表的Select语句,在特定的情况下,如果想跟踪一个表的Select转载 2015-03-25 19:30:09 · 1140 阅读 · 0 评论 -
用proc返回cursor
今天有人在问proc返回cursor的问题,下面给个示例通过out返回cursorCREATE OR REPLACE PROCEDURE getcity(v_citycode IN VARCHAR2, ref_cursor OUT SYS_REFCURSOR ASBEGIN OPEN ref_cursor原创 2015-03-23 13:56:58 · 771 阅读 · 0 评论 -
blob转clob
有学生问,在blog里保存了文本,怎么转成clob。方法如下:有dbms包可以转换,不过它是个proc,需要封装下CREATE OR REPLACE FUNCTION f_blob2clob(p_blob BLOB) RETURN CLOB AS l_clob CLOB; amount NUMBER; dest_offset NUMBER; src原创 2014-12-19 11:20:55 · 4306 阅读 · 1 评论 -
审计列值变动
监控用户test下dept2.dname的改动SQL> desc dept2;Name Type Nullable Default Comments ------ ------------ -------- ------- -------- DEPTNO NUMBER Y DNAME VARCHAR2(1原创 2015-03-25 20:08:57 · 525 阅读 · 0 评论 -
function在查询语句里的运行次数
SQL> SELECT pkg_test.get_id AS a, pkg_test.get_id AS b, pkg_test.get_id AS c from dual; A B C---------- ---------- ---------- 1 2 31 row selected原创 2014-02-25 15:28:16 · 1541 阅读 · 0 评论 -
串行执行proc
有时为了避免资源的占用或重复处理,会要求某个proc只能串行的执行,即:同一时间只能有一个session执行这个proc。这种需求可以通过dbms_lock来实现。样例包如下:CREATE OR REPLACE PACKAGE pkg_lock IS v_lockname VARCHAR2(12) := 'control_lock'; v_lockhandle VARCHA原创 2014-12-29 10:53:22 · 604 阅读 · 0 评论 -
用动态sql生成cursor
有个学生提问G3 2015-01-15 13:23:27for list_init in (select PROV_CODE,PROV_NAME from province) loop insert into T_BUSI_MONTH_REPORT (PROV_CODE, PROV_NAME, BUSI_MONTH, BUSI_DAY, BUSI_TYPE, INSERTTIME原创 2015-01-15 14:30:33 · 4034 阅读 · 0 评论 -
查询dba_constraints
dba_constraints中有一字段为long,查询麻烦,现找了个笨办法转为clob,希望能引出更好的办法CREATE OR REPLACE PACKAGE pkg_test IS TYPE obj_constraints IS RECORD( owner dba_constraints.owner%TYPE, constraint_name原创 2014-12-25 22:50:42 · 4043 阅读 · 0 评论 -
批量insert示例
DROP TABLE test1 PURGE/DROP TABLE test2 PURGE/CREATE TABLE test1 AS SELECT * FROM Dba_Objects/CREATE TABLE test2 AS SELECT * FROM test1 WHERE 1=2/DECLARE v_limit INT := 10000; v_原创 2013-12-20 12:21:50 · 1034 阅读 · 0 评论 -
判断是否为日期类型
有些数据库设置的时候喜欢用文本来保存日期,因为缺少足够的验正,常常会有些错误的数据进原创 2014-10-16 11:29:09 · 2237 阅读 · 0 评论 -
游标是否一次取出所有记录
我们可以用一个有错误的查询来验正:原创 2014-09-02 13:58:00 · 1959 阅读 · 0 评论 -
字符串分拆函数
DROP TABLE t100/CREATE TABLE t100 AS SELECT LEVEL AS ID FROM dual CONNECT BY LEVEL <= 100/CREATE OR REPLACE TYPE VARCHAR2LIST AS VARRAY(50) OF VARCHAR2(4000)/CREATE OR REPLACE FUNCTION F_SPLIT_S原创 2013-09-02 10:54:51 · 1104 阅读 · 0 评论 -
用table类型作为参数
用table类型作为参数,首先要建原创 2014-08-21 19:17:53 · 2922 阅读 · 0 评论 -
管道函数
create table TT( t1 NUMBER not null, t2 DATE)/alter table TT add constraint PK_TT primary key (T1)/REATE OR REPLACE PACKAGE pkg_test IS TYPE table_tt IS TABLE OF tt%ROWTYPE; FUNCTION get原创 2013-09-24 19:03:47 · 1086 阅读 · 0 评论 -
你所不知道的秘技+神技:动态行转列
转自(你所不知道的秘技+神技:动态行转列 http://www.itpub.net/thread-1609939-1-1.html)CREATE OR REPLACEtype PivotImpl as object( ret_type anytype, -- The return type of the table function stmt varchar2(32767转载 2015-07-05 14:22:59 · 1320 阅读 · 0 评论