
Oracle/MySQL
wozeze1
这个作者很懒,什么都没留下…
展开
-
Oracle函数 - 根据特定字符切割字符串
CREATE OR REPLACE FUNCTION fun_color_switch(color IN VARCHAR2) /* * 将十进制color(字符串型) 转换成 (R,G,B) 格式 ; 如果color是NULL,则返回NULL * eg : 1234567 -> 18,214,135 */ RETURN VARCHAR2 IS RESULT VAR原创 2009-04-02 11:38:00 · 872 阅读 · 0 评论 -
查询正在运行的SQL
找出低效的SQL:SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXTFROM V$SQL原创 2009-08-26 15:31:00 · 597 阅读 · 0 评论 -
Oracle 递归查询
te_terminalgroup表结构id varhcar2(50)parentid varhcar2(50)数据是是树形,记录的父记录是parentid = id的记录 (不知道能看明白不)举例: 记录1:id = 1,parentid = 0 记录2:id = 2,parentid = 1 可以假设parentid = 0 的记录为根节点 这样i原创 2009-06-24 15:37:00 · 640 阅读 · 1 评论 -
查杀被锁资源的进程(LINUX操作系统下)
问题描述:出现错误号为ORA-04021 等待锁定对象.. 的错误信息 0.以dba身份登录数据库 一句等于下面三句SQL: SELECT t.NAME,t2.SID,t2.SERIAL# FROM V$DB_OBJECT_CACHE t JOIN v$access t1 ON t.NAME = t1.OBJECT JOIN v$session t2 ON t1.S原创 2009-07-03 11:00:00 · 686 阅读 · 0 评论 -
Oracle Job写法
存储过程prc_test_job:create or replace procedure prc_test_job isbegin INSERT INTO test_job VALUES (fun_gid()); end prc_test_job; 用下面新建的Job(每天23点)调用上面prc_test_job的存储过程DECLA原创 2009-09-18 14:42:00 · 3418 阅读 · 0 评论 -
关于Trigger的使用 - 转自AskTom
-- Thanks for the question regarding "Trigger on a table Fire at commit.", version 9.2.0 Submitted on 18-Jul-2007 12:40 Central time zoneToms latest followup | Bookmark | BottomLast updated 17-转载 2009-09-22 14:24:00 · 809 阅读 · 0 评论 -
Efficient SQL - 转自AskTom
This was probably the hardest part of the book to write - this chapter. That is not because the material is all that complex, rather because I know what people want - and I know what can be de转载 2009-09-22 14:13:00 · 538 阅读 · 0 评论 -
Oracle NOWAIT关键字的理解
sql_1:select 1 from dual for update;sql_2:select 1 from dual for update;sql_3:select 1 from dual for update nowait; 执行sql_1,不提交,表dual被锁分支1):执行sql_2,sql_2被阻塞,等待sql_1提交分支2):执行sql_3,因为有nowa原创 2009-09-25 13:22:00 · 13887 阅读 · 2 评论 -
PL/SQL Developer 使用技巧
1.左侧目录默认显示My object 点击目录上面图标中(六个图标)倒数第二个,鼠标选中My object,选中下面复选框Default 2.保存Window List的布局 首先显示出Window List,Tools -> Window List 保存布局:Windows -> Save Layout 3.记住登录密码 Tools -> Preferen原创 2009-10-10 10:31:00 · 1112 阅读 · 0 评论 -
一些SQL 和 存储过程
--行列转换 行转列DROP TABLE t_change_lc;CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);INSERT INTO t_change_lc SELECT 001 card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal转载 2009-11-13 17:34:00 · 452 阅读 · 0 评论 -
生成省市的SQL脚本
--省级 Provincial--城市 Citycreate table Provincial(pid int,Provincial varchar(50),primary key (pid))insert into Provincial values(1,北京市)insert into Provincial values(2,天津市)insert into Provincial转载 2009-11-24 17:50:00 · 808 阅读 · 0 评论 -
一条SQL生成N条记录
1 select rownum as id, 2 to_char(sysdate + rownum / 24 / 3600, yyyy-mm-dd hh24:mi:ss) as inc_datetime, 3 trunc(dbms_random.value(0, 100)) as random_id, 4转载 2009-12-10 09:23:00 · 793 阅读 · 0 评论 -
在存储过程中查询dba_tables表的时候,需要赋权限给该用户
<br />grant select on sys.dba_tables to 用户名原创 2010-08-24 15:58:00 · 4481 阅读 · 0 评论 -
Oracle 的随机数、随机日期和时间、随机字符串
<br />1. 随机数包 <br /> SELECT DBMS_RANDOM.VALUE FROM DUAL; <br /> <br />2. 在[0..100]范围内取随机数<br /> SELECT TRUNC (DBMS_RANDOM.VALUE (0, 100)) FROM DUAL; <br /> <br />3. 大于字符'A'的10个字符随机字符串 <br /> SELECT DBMS_RANDOM.STRING ('A', 10) FROM DUAL; <br />转载 2010-08-24 15:53:00 · 527 阅读 · 0 评论 -
使执行存储过程的用户拥有role的权限
create or replace procedure pr_mv authid current_user is begin DBMS_MVIEW.REFRESH('mv_xx'); end;原创 2010-08-24 16:33:00 · 472 阅读 · 0 评论 -
SQL HAVING用法详解
<br /><br />HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 和 SELECT 的交互方式类似。WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中显示的任意项。<br /> <br />下面的示例按产品 ID 对 SalesOrderDetail 进行了分组,并且只包含那些订单合计大于 $1,000,000 且其平转载 2010-11-24 09:48:00 · 166545 阅读 · 9 评论 -
inner join 与 exists 性能比较
在网上找了一圈它俩的比较,零零碎碎,说法很多,其中有一个人说的感觉挺在理,支持的人也很多 由于是两表关联,所以存在一个匹配率的东西 如果匹配率高的话那么exists的效率就高,原因是exists在匹配的时候是有一条存在则返回结果 而inner join它的稳定性比exists要好 所以当你对两表数据本身不是十分了解的情况下,最好还是用inner join吧原创 2009-06-16 13:37:00 · 4019 阅读 · 0 评论 -
Tomcat6 + MySQL连接池配置
server.xml, 将下面代码放在对应工程的Context节点的下面<Resource name="jdbc/mysql" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" password="root" maxId原创 2009-06-03 16:14:00 · 536 阅读 · 0 评论 -
用pl/sql developer 将文本文件导入Oracle数据库
1. 数据已经准备好,存放在txt文本,并且记录行是用回车分隔,列式用逗号分隔2. 打开pl/sql developer,选择Tools -> Text Importer3. 点击内窗口左上按钮(Open Data File),选择数据文本4. 小窍门: 把txt文本里的数据最上面加上一行头,与你要插入的表的结构对应即可 在Data from Textfile视图里,在中间原创 2009-04-11 17:34:00 · 8186 阅读 · 3 评论 -
Oracle函数,把十进制color转换成 R,G,B
CREATE OR REPLACE FUNCTION fun_color_switch(color IN VARCHAR2) /* * 将十进制color(字符串型) 转换成 (R,G,B) 格式 ; 如果color是NULL,则返回NULL * eg : 1234567 -> 18,214,135 */ RETURN VARCHAR2 IS RESULT VA原创 2009-04-02 11:41:00 · 665 阅读 · 0 评论 -
一个sql,用到exists
DELETE FROM tr_corp_planweekly tWHERE EXISTS (SELECT 1 FROM tr_corp_planweekly t1INNER JOIN te_plan_monthly t2 ON t1.weekly_id = t2.IDWHERE t1.weekly_id = t.weekly_id);原创 2009-04-03 15:50:00 · 383 阅读 · 0 评论 -
oracle所有函数的功能说明
SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0) zero,ascii( ) space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 32 2.CHR转载 2009-04-13 14:33:00 · 582 阅读 · 0 评论 -
SQL 函数
Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(ex转载 2009-04-08 17:39:00 · 421 阅读 · 0 评论 -
关于游标嵌套
当游标A,嵌套在游标B中的时候,如果游标B发生异常,则可能造成其没有关闭,所以,应该在游标A的异常处理判断游标B是否已关闭,如果未关,则将其关闭IF ( A_CURSOR%ISOPEN = TRUE ) THEN CLOSE A_CURSOR;END IF;原创 2009-04-08 17:47:00 · 623 阅读 · 0 评论 -
高效SQL
1.最高效的删除重复记录方法 ( 因为使用了ROWID) DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); 2.用Where子句替换HAVING子句 避免使用HAVING转载 2009-04-27 16:04:00 · 861 阅读 · 1 评论 -
写存储过程的时,要用动态SQL!
用动态SQL的好处是:同样的SQL他只会编译一次,以后只把有变量的位置换掉,这样速度大大提高 以上是个人的理解和实践出来的,网上面有人说存储过程里的SQL都是编译一次以后重复用的,我实际用的时候确实是用动态SQL比静态的至少快1个数量级,个别甚至10个数量级 动态SQL写法:execute immediateselect * from table t where t.id原创 2009-05-03 10:45:00 · 480 阅读 · 0 评论 -
Oracle授权语句
grant select any table to username; 解释:授予username用户查询该用户所有表的权限 select 可以 替换成 insert , update , delete 等 any table 可以 替换成 具体的表原创 2009-07-21 10:58:00 · 2549 阅读 · 0 评论 -
导dmp数据犯的错
今天用pl/sql developer往数据库里导dmp文件,用pl/sql的工具 "Import Tables" -> "Oracle Import",结果在"Import Executable"里没有需要的执行文件imp.exe,于是让同事给我发了一个他机器上的,放到我机器里却无法执行,后来经人指点,原来是我的Oracle客户端装的是最小版本,好多功能都没有,于是又装了遍客户端,这回是管理员原创 2009-05-13 17:11:00 · 502 阅读 · 0 评论 -
级联更新SQL
UPDATE taxi_ad_vhc vhc SET ad_del_flag = (SELECT 2 FROM ut_ad_vhc_resend resend WHERE ad_id = vhc.ad_id AND vi原创 2009-05-19 10:10:00 · 543 阅读 · 0 评论 -
Oracle SQL 执行顺序
--查询的逻辑执行过程,来自技术内幕 (8) SELECT (9) DISTINCT (11) (1) FROM (3) JOIN (2) ON (4) WHERE (5) GROUP BY (6) WITH {CUBE | ROLLUP} (7) HAVING (10) ORDER BY ------------------转载 2009-07-30 16:13:00 · 2291 阅读 · 0 评论 -
oracle临时表的用法总结 - 转自优快云:wyzxg
原帖网址:http://blog.youkuaiyun.com/wyzxg/archive/2007/11/13/1882347.aspx 前段时间,新公司的面试官问了一个问题,临时表的作用,以前我们用缓存中间数据时候,都是自己建一个临时表。其实oracle本身在这方面就已经考虑很全了,除非有些高级应用,我再考虑自己创建临时表。由于本人对临时表的了解不是很多,于是回来搜集下这方面的资料,弥补下这块转载 2009-08-03 17:29:00 · 1480 阅读 · 0 评论 -
Oracle 数据库 与 实例的区别
刚接触ORACLE的人肯定会对实例和数据库感到困惑,实例到底代表些什么?为什么会有这个概念的出现?ORACLE实例 = 进程 + 进程所使用的内存(SGA)实例是一个临时性的东西,你也可以认为它代表了数据库某一时刻的状态!数据库 = 重做文件 + 控制文件 + 数据文件 + 临时文件数据库是永久的,是一个文件的集合。ORACLE实例和数据库之间的关系1.临时性和永久转载 2009-05-22 14:20:00 · 1358 阅读 · 0 评论 -
两条语句实现有则更新,无则新增
UPDATE table SET field='C', field2='Z' WHERE id=3;INSERT INTO table (id, field, field2) SELECT 3, 'C', 'Z' WHERE 1 NOT IN (SELECT 1 FROM table WHERE id=3);原创 2012-02-03 16:08:32 · 1301 阅读 · 0 评论