- 博客(156)
- 资源 (2)
- 收藏
- 关注

原创 Oracle查询优化改写技巧与案例上架了
应邀写了本sql改写的书,终于上架了,怀着忐忑的心情祝贺下。http://item.jd.com/11587404.html
2014-12-09 13:42:07
3767
9
原创 Oracle迁移到MogDB之MULTISET UNION
MULTISET UNION返回两个集合变量的并集,但因MogDB与Oracle有语法差异,迁移时可能会遇到报错,我们需要根据MogDB的语法进行修正。
2024-05-08 11:49:04
193
原创 Oracle迁移到MogDB之xmlsequence
XMLSEQUENCE 函数可以将 SQL 查询结果集转换为 XML 序列。MogDB中暂时没有这个函数,我们可以用 cursor_to_xml + unnest 来模拟。
2024-05-08 10:00:54
256
原创 Oracle迁移到MogDB之dbms_xmlgen.getXML
dbms_xmlgen.getxml是一个Oracle PL/SQL包中的函数,用于生成XML格式的数据。MogDB目前不支持该函数,我们可以用query_to_xml来代替该功能。
2024-05-07 17:15:06
433
原创 Oracle迁移到MogDB之XMLELEMENT
迁移项目时遇到xmlelement报错,而MogDB是支持xmlelement的,经确认是语法有细微区别。
2024-05-06 17:08:40
246
1
原创 Oracle迁移到MogDB之XMLPARSE
Oracle迁移到MogDB,在两个客户的项目中都遇到过XMLPARSE,我们来看下如何迁移。
2024-05-06 16:46:46
270
1
原创 Oracle迁移到MogDB之MEMBER OF
在做POC项目时,遇到客户的代码中有member of的判断,而MogDB暂不支持该语法,不过MogDB中可以采用其它方式来实现该功能。
2024-05-06 16:14:45
226
1
原创 MySQL迁移到MogDB后查询数据大小写敏感问题
MySQL默认文本不区分大小写,而在MogDB中默认会区分大小写,直接迁移后可能会使原查询语句因大小写不一致而查询不到数据。可以通过更改编码的方式处理。
2024-04-16 15:00:51
381
1
原创 Oracle迁移到MogDB之管道函数(pipeline)
Oracle迁移到MogDB时遇到管道函数(pipeline),因MogDB暂时不支持pipeline,可改为返回记录录,以此来兼容table()调用方式。
2024-04-16 14:52:43
338
转载 WinSCP自动执行脚本
from : http://www.cnblogs.com/binw/p/4065607.html我们经常使用WinSCP工具通过sftp协议上传获取文件,本文描述通过bat批量处理文件。首先,我们打开dos命令窗口使用 cd \d :D\WinSCP 打开WinSCP安装目录上传文件:winscp.exe /console /command "option batch continue" "opt
2016-11-10 13:06:53
10263
1
原创 用树形+eval_number进行计算
有这样一个需求,对于各行数据要求 1+2 1+2+3 1+2+3+4 —– 2+3 2+3+4 —- 28+29 上面的1 2 3 是行号 我们以emp表为例WITH x0 AS (SELECT rownum AS rn, sal FROM (SELECT sal FROM emp ORDER BY sal))SELECT sal, dbms_aw.eval_number(s
2015-09-10 09:53:48
1764
原创 12C标量子查询中的BUG
在12C中,cbo会自动对标量子查询改写了:create table test as select * frm dba_objects;create table test3 as select * from test;select (select max(DATA_OBJECT_ID) from test b where b.object_id=a.object_id ) from t
2015-08-21 19:35:06
1231
转载 你所不知道的秘技+神技:动态行转列
转自(你所不知道的秘技+神技:动态行转列 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
1359
原创 mysql 里怎么实现full join
mysql现在还不支持full join ,那如果有这种需求怎么办呢?可以用union all来实现数据源如下CREATE TABLE L ASSELECT 'left_1' AS str,'1' AS v FROM dual UNION ALLSELECT 'left_2','2' AS v FROM dual UNION ALLSELECT 'left_3','3' AS v F
2015-05-04 11:02:57
6741
1
原创 根据当前值重建sequence
大家知道oracle中的序列与表之前没有必然的关系,一个序列可以给一个表使用也可以给另一个一使用。所以最好增加字典表及文档来保存序列与表之间的对应关系。那最好这些都没有怎么办呢?有一个系统中是根据触发器来调用序列,通过触发器我们可以找到表与序列之间的对应关系SELECT NAME, MAX(CASE referenced_type WHEN
2015-04-18 13:33:56
1142
原创 优化mysql标量子查询
mysql的优化方法有很多与oracle类似,而且mysql对子查询的支持更差.下面是一个mysql的标量子查询SELECT DISTINCT t.act_id, ( SELECT count(0) FROM t WHERE to_days(now()) - to_days(time_stamp) = 1 ) yesterday, ( SELECT
2015-04-10 11:00:16
1974
原创 审计列值变动
监控用户test下dept2.dname的改动SQL> desc dept2;Name Type Nullable Default Comments ------ ------------ -------- ------- -------- DEPTNO NUMBER Y DNAME VARCHAR2(1
2015-03-25 20:08:57
550
转载 阅读笔记 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
1178
原创 用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
805
原创 query_cache
mysql的query_cache 相当于 oracle 里的result cachemysql> mhow variables like '%query_cache%';+------------------------------+---------+| Variable_name | Value |+-----------------
2015-03-22 15:45:50
821
原创 max_user_connections与max_connections
max_user_connections针对单一用户max_connections针对所有用户用一个脚本可以验正 cat test.shmysql -uroot -p3306 -e "show variables like '%max%connections'"for i in {1..4}domysql -utest -ptest -e "select sleep(
2015-03-14 17:04:41
1246
原创 varchar2设置长度与实际大小
以前有学生问过,varchar2(4k)与varchar2(1)里面存同样的数据会怎么样。我喜欢直接用测试结果说话,现在把实验补上CREATE TABLE vc1(c1 VARCHAR2(1));CREATE TABLE vc4k(c1 VARCHAR2(4000));分别加入1W行数据进去SQL> insert into vc1 select * from vc4k;1000
2015-03-14 15:38:08
4887
原创 open_cursors 与 ORA-01000
open_cursors 是可以打开的游标数,如果只打开不关闭,很容易就到上线了下面我们来做下实验:先把值改小一点SQL> alter system set open_cursors=5;System altered.建一procCREATE OR REPLACE PROCEDURE p_cur_test(OUT cur SYS_REFCURSOR) ASBEGIN
2015-03-11 20:53:14
1370
原创 模拟ORA-00020错误
有些同学会遇到ORA-00020错误,这个错误是怎么来的呢?我们来在测试机上模拟下首先减小processes的值SQL> alter system set processes=39 scope =spfile;System altered.SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE i
2015-03-11 11:51:41
778
原创 insert时能否重用delete后的空间
这个问题答案很简单,很多人也都清楚,但直接说答案没意义,也不便于理解。我们用简单的案例来演示1、新建表,占用200Mmysql> create table test as select @id:=@id+1 as id,e.* from emp e ,t100 a,t100 b,t100 c;Query OK, 2875306 rows affected (30.62 sec)
2015-02-07 10:43:47
1245
原创 用动态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
4070
原创 串行执行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
625
原创 yyyy转为日期时的问题
当使用to_date(,'yyyy')把文本转为日期时,会默认使用当前的月份SQL> select sysdate from dual;SYSDATE-----------2014-12-151 row selectedSQL> select to_date('2013','yyyy') from dual;TO_DATE('2013','YYYY')-------------
2014-12-28 20:02:27
845
原创 查询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
4217
原创 特殊的行转列需求
mysql> select * from ddd;+------+------+------+------+| stat | yi | er | san |+------+------+------+------+| a | 1 | 2 | 3 || a | 4 | 5 | 6 || b | 11 | 22 |
2014-12-25 10:49:55
927
原创 根据参数写动态sql
不止mysql不能识别,oracle、db2一样都不能识别,印象里只有foxbase可以通过转义识别。而在mysql、oracle、db2里就需要用动态sql实现过程如下DELIMITER $$drop PROCEDURE `exe_select`$$CREATE PROCEDURE `exe_select`(in tbl varchar(500),in col varchar(
2014-12-24 15:03:47
924
原创 枚举给定期间内的季度信息
要求枚举给定时段内的季度信息,原数据模拟如下这种需求可以通过connect by 语句来分拆,只要计算出中间间隔的季度即可SELECT t.id, t.开始年, t.开始季度, t.结束年, t.结束季度, lv, to_char(d3, 'yyyy') AS 枚举年, to_char
2014-12-23 15:21:00
704
原创 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
4386
1
原创 分组统计文本信息
文本信息[root@mysql24 user_3306]# mysql -uroot -p3306 -e 'select * from test.emp' > test.txtWarning: Using a password on the command line interface can be insecure.[root@mysql24 user_3306]# cat test.t
2014-12-05 13:56:49
807
转载 返回os命令执行结果
参考:http://www.360doc.com/content/12/0131/16/2660674_183157204.shtml>>> import commands>>> (status,output)=commands.getstatusoutput("dmidecode |grep 'UUID' | awk '{print $2}'")>>> print status,
2014-12-05 13:50:03
1157
原创 用bypass_ujvc改驱动表
有一群友需要改update语句中的驱动表UPDATE p SET gflag = 1 WHERE EXISTS (SELECT 1 FROM t WHERE t.region = :b2 AND t.cycle = :b1 AND t.acctid = p.acctid)因为t表返回数据较少,所以他想
2014-12-02 17:50:48
1127
原创 非主键列不一致时,mysql同步追踪
参数设置,主从都设置成"ROW"模式mysql> show variables like '%binlog_format%';+---------------+-------+| Variable_name | Value |+---------------+-------+| binlog_format | ROW |+---------------+-------+1 ro
2014-11-20 14:51:46
628
转载 Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
from http://dadekey.blog.51cto.com/107327/119938/我们先写一个简单的脚本,执行以后再解释各个变量的意义 # touch variable# vi variable 脚本内容如下: #!/bin/shecho "number:$#"echo "scname:$0"ech
2014-11-17 17:17:59
2466
Microsoft Jet 参考
2013-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人