![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
luckystar2008
个人博客:https://tommy88.top
展开
-
MySQL命令行执行SQL脚本
MySql命令行执行SQL的2种方式: 第一种方式:在未连接数据库的情况下,输入 mysql -h localhost -u root -p 123456 < d:\test.sql 回车即可; 第二种方式:在已连接数据库的情况下,此时命令提示符为mysql>,输入 source d:\test.sql 或者 \. d:\test.sql 回车即可。...原创 2013-09-05 14:27:57 · 199 阅读 · 0 评论 -
Java获取Oracle存储过程返回的自定义嵌套表
在命令窗口执行以下语句,创建自定义类型NESTEDARRAY。create or replace TYPE NESTEDARRAY IS TABLE OF NVARCHAR2(32);在存储过程中使用自定义类型NESTEDARRAY。PROCEDURE GET_ARR_RESULT(INPUTARRAY IN NESTEDARRAY, AR OUT NESTEDARRAY) IS...2013-01-12 12:13:00 · 113 阅读 · 0 评论 -
Java获取Oracle存储过程返回的Cursor
存储过程:Package Head:CREATE OR REPLACE PACKAGE TEST IS --返回cursor TYPE CURSOR_RESULT IS REF CURSOR; PROCEDURE GET_CURSOR_RESULT(P_STARTINDEX IN INT, P_LIMI...2013-01-12 12:08:00 · 226 阅读 · 0 评论 -
Listagg() - Oracle11gR2进行字符串汇总的新函数
在 wait4friend 的一篇老文《Oracle进行字符串汇总》里面,提到了三种常用的方式。其中比较好用的是10g之后提供的wm_concat()函数。在日常使用中,我们发现了wm_concat函数的一些缺点。首先是这个函数本身不支持排序,要通过嵌套视图的方式进行排序。另一个问题是,当排序过程中,可能会遭遇ora-01467 sort key too long错误。 在11gR2版本...2013-07-03 11:21:00 · 87 阅读 · 0 评论 -
Oracle函数wmsys.wm_concat的使用
文章转载http://www.2cto.com/database/201204/128928.html 首先介绍语法:wmsys.wm_concat Definition:The Oracle PL/SQL WM_CONCAT function is used to aggregate data from a number of rows into a single ro...2013-07-03 11:15:00 · 165 阅读 · 0 评论 -
Oracle connect by 例子
转载自:http://hi.baidu.com/ljmybfq/item/f9d48a1651ce560dd1d66d45层次查询子句connect by,用于构造层次结果集的查询。 语法: [ START WITH condition ] CONNECT BY [ NOCYCLE ] condition 说明: a、START WITH:告诉系统以哪个节点作为根结点开始查找并构造结果集,该...2013-01-06 22:17:00 · 120 阅读 · 0 评论 -
Oracle游标之select for update和where current of 语句
转载http://hanjiangduqiao.blog.163.com/blog/static/613105442011431111153601 使用select for update 语句可以使用行锁锁定你要更改的记录.当遇到下一个commit和rollback语句时会被释放.The Select For Update statement allows you to lock t...2013-06-27 10:57:00 · 493 阅读 · 0 评论 -
Oracle lpad与rpad函数
lpad(str1,len,pad):把pad添加到str1的左边,返回的字符串的长度是len。--1.原字符串长度不够,左边补0select lpad('Miss',10,'0') from dual;--000000Miss--截取原字符串的前2个字符select lpad('Miss',2,'0') from dual;--Mi--第三个参数不写,左边会补空格。se...2013-06-26 14:36:00 · 80 阅读 · 0 评论 -
Oracle ltrim rtrim trim函数
select ltrim(' Miss') from dual;--去掉左边的空格,返回Missselect ltrim('Miss you','kM') from dual;--iss you--从第一个字符串的第一个字符开始查找是否在第二个字符串中出现过,出现过则截掉。如:select ltrim('Miss you','Mi') from dual;--ss yousele...2013-06-26 01:56:00 · 109 阅读 · 0 评论 -
oracle forall 介绍 .
本文转载:http://blog.csdn.net/a9529lty/article/details/2937693 FORALL语句的一个关键性改进,它可大大简化代码,并且对于那些要在PL/SQL程序中更新很多行数据的程序来说,它可显著提高其性能。1:用FORALL来增强DML的处理能力Oracle为Oracle8i中的PL/SQL引入了两个新的数据操纵语言(DML)语句:BULK...2013-06-25 10:26:00 · 106 阅读 · 0 评论 -
Oracle中Hint深入理解
Hint概述基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。此时就需要DBA进行人为的干预,告诉优化器使用我们指定的存取路径或连接类型生成执行计划,从 而使语句高效的运行。例如,如果我们认为对于一个特定的语句,执行全表扫描要比执行索引扫描更有效,则我们就可以指示优化器使用全表扫...2013-01-12 12:18:00 · 507 阅读 · 0 评论 -
Oracle的锁表与解锁
转载http://www.cnblogs.com/swcjdSELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL) LOCK_LEVEL,o.owner,o.object_name,o.object_type,s.sid,s.serial#,s.termina...2013-07-17 17:41:00 · 72 阅读 · 0 评论 -
oracle group by子句的几种用法
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,然后依次是...原创 2013-08-14 15:39:47 · 437 阅读 · 0 评论 -
Oracle空值排序——排到前面或后面
1.使用order by 列名 nulls first,将此字段为空的记录排到前面。2.使用Order by 列名 nulls last,将此字段为空的记录拍到后面。 这样当然是可以的:select * from test where .. order by a desc,b nulls first;...原创 2013-08-14 10:58:28 · 1494 阅读 · 0 评论 -
ORA-0131:Insufficient privileges. Note:Debugging requires the DEBUG CONNECT SESS
使用PL/SQL developer调试procedure时提示“ORA-0131:Insufficient privileges. Note:Debugging requires the DEBUG CONNECT SESSION system privileges”。原因就是用户权限不够,要使用下面的命令来授权。grant debug connect session to 用户;...原创 2013-08-13 16:00:38 · 1251 阅读 · 0 评论 -
Oracle keep index
一个表的主键使用了唯一索引,我直接用alter table xxx drop constraints pk_xxx;删除主键,DB扫描时提示说删除约束时必须指定keep index保留索引。百度了一下,看到了http://zhaolinjnu.i.sohu.com/blog/view/75962031.htm这篇文章。下面是它的原文:我们通常的操作是向表中的一列或几列添加一个...原创 2013-08-07 19:11:58 · 549 阅读 · 1 评论 -
查看创建trigger的语句
在PLSQL DEV中没有权限查看TRIGGER时,可以用下面的SQL。select * from dba_triggers t where t.table_name = 'TABLE_NAME';显示的列有:OWNER TRIGGER_NAME TRIGGER_TYPE TRIGGER_EVENT TABLE_OWNER BASE_OBJECT_TYPE TABLE_NAME COL...原创 2013-08-07 19:07:58 · 779 阅读 · 0 评论 -
去掉oracle字段的默认值
为表的字段添加默认值的语法:alter table tableName modify columnName default defaultValue;比如,将表test的cno字段默认值设置为0.alter table test modify cno default 1. 如果要去掉默认值呢?alter table test modify cno default ...原创 2013-08-06 19:59:57 · 8159 阅读 · 0 评论 -
记录一次删除Oracle表字段的非空约束
一个表表结构指定了某个字段(如cno)not null,同时加了check not null约束。现在需要将not null约束去掉,要让cno字段可以插入空值。于是执行了下面的语句:1.alter table tableName drop constraints not_null_cons_cno;2.alter table tableName modify cno null; ...原创 2013-08-06 12:59:14 · 1209 阅读 · 0 评论 -
plsql批量执行脚本
如果脚本数量很多,手动执行脚本效率很低,而且如果涉及到多个用户的切换,那就更耗时了。因此,这种情况批量执行就变得很重要。 在Oracle中批量执行脚本其实很简单。把要执行的脚本按如下格式写入一个文件中,比如d:\scripts\all.sql。connect tdata/test123@test@d:\scripts\1_tdata_tab.sqlconnect ...原创 2013-08-05 10:46:19 · 712 阅读 · 0 评论 -
Oralce自定义函数实现字符串分割
1.定义自定义类型,函数返回自定义类型SQL> create or replace type str_split is table of varchar2(1000); 2 / Type created 2.用一个Function来实现字符串分割的功能。/** 功能:字符串分割。* 参数:p_str 分割的字符串* p_delimiter 分隔符*/create or re...原创 2013-07-22 14:43:08 · 88 阅读 · 0 评论 -
Oracle日期处理——Extract()函数
1.2个日期相差的天数:--相减得到相差的天数 select to_date('2012-10-18 15:29:01', 'yyyy-mm-dd hh24:mi:ss') - to_date('2012-08-09:18:04:02', 'yyyy-mm-dd hh24:mi:ss') from dual;...2012-12-26 20:05:00 · 250 阅读 · 0 评论 -
Oracle三种集合数据类型的比较
From 比特网ChinaByte PL/SQL中没有数组的概念,他的集合数据类型和数组是相似的。在7.3以前的版本中只有一种集合,称为PL/SQL表,在这之后又有两种集合数据类型:嵌套表和varray。其中varray集合中的元素是有数量限制的,index_by表和嵌套表是没有这个限制的。index-by表是稀疏的,也就是说下标可以不连续,varray类型的集合则是紧密的,他的下标没有间隔。...2013-06-07 14:24:00 · 89 阅读 · 0 评论 -
Oracle标签的使用
在用Code Xpert扫描代码时,提示“Avoid unlabeled nested LOOPs”.即避免使用没有标签的嵌套循环。那么标签是怎么使用的呢?看下面的例子:procedure test_label is cursor mycursor is select t.trustee from xxxt wh...2011-07-28 16:01:00 · 177 阅读 · 0 评论 -
存储过程动态参数
create or replace procedure testdynamicparams(p_cmbno in varchar2, p_trade_date in varchar2) is cursor testcursor is select cm...2011-07-28 15:59:00 · 131 阅读 · 0 评论 -
Log Explorer
今天操作数据库的时候不小心把一个表给Delete操作了,所有数据都没有了,备案是很久以前的,那个惊慌啊,后来在网上找到方法给恢复了,有惊无险,共享给大家使用Log Explorer 4.1Log Explorer 4.1 For SQL Server 2005下载地址:http://download.csdn.net/source/1321581安装后打开log explo...2011-10-07 12:15:00 · 103 阅读 · 0 评论 -
Oracle产生随机数
1.随机数:dbms_random.value(1,n);产生1到n之间的随机数。如产生一个1到100之间的随机数:select round(dbms_random.value(1,100)) from dual;2011-09-19 21:58:00 · 86 阅读 · 0 评论 -
Oracle查询字段所在表及字段长度
--查询包含DNO字段,且字段长度<10的表。select * from user_tab_cols t where t.column_name like '%DNO%' and data_length < 10; 有时候数据库中有很多表包含同一个字段时,要修改表字段长度,可以通过这个查询哪些需要修改。...2011-09-19 14:14:00 · 2010 阅读 · 0 评论 -
MSSQL用批处理执行多个sql脚本
开始->运行->cmd->osql -?可以查看参数信息。注意: osql 并不支持 SQL Server 2008的所有功能。请使用 sqlcmd。有关详细信息,请参阅 SQL Server 联机丛书。用法: osql [-U 登录 ID] [-P 密码][-S 服务器] ...2011-09-10 02:57:00 · 368 阅读 · 0 评论 -
oracle中的''和null
declare v_new varchar2(20) := ''; cursor c_test is select distinct no from test where dno is not null; v_test c_test%rowtype;begin open c_test; loop fetch c_test into v_test; --根据d...2011-09-09 15:29:00 · 119 阅读 · 0 评论 -
SYS_GUID()与sequence的比较【转】
文章转载于:http://www.cnblogs.com/BradMiller/archive/2010/11/10/1873314.htmlSYS_GUID()与sequence的比较序列生成器sequence所生成的数字只能保证在单个实例里是唯一的,这就不适合将它用作并行或者远程环境里的主关键字,因为各自环境里的序列可能会生成相同的数字,从而导致冲突的发生。SYS_GUID会保...2011-09-01 14:27:00 · 68 阅读 · 0 评论 -
Oracle查找某个字段所在的表
--查找该用户下(其他表如果有访问权限也算)有备注的字段中某个字段所在的表SELECT * FROM ALL_COL_COMMENTS where column_name = 'BOOK_FLAG' or column_name = 'book_flag';--查找当前用户下某个字段所属的表select * from user_tab_columns t...2011-08-31 14:32:00 · 433 阅读 · 0 评论 -
oracle大批量数据更新
比如现在对一个表增加一个流水字段,非空,唯一。该表数据量为3000000.假设表名为test。1.使用cursor。declare cursor c_test is select rowid from test; v_test c_test%rowtype;begin open c_test; loop fetch...2011-07-28 16:06:00 · 232 阅读 · 0 评论 -
Oracle用户解锁
在安装完Oracle 10g之后,想打开sql*plus来学习,用scott用户来连接数据库,可输了好几次都提示一个错误。error: the account is locked。 上网查,用管理员登陆,然后对scott解锁。我用的PL/SQL Developer,以sys/system登陆,然后执行下面的命令:alter user scott account unlock;...2012-06-10 01:19:00 · 190 阅读 · 0 评论 -
Oracle中merge into的使用
http://blog.csdn.net/yuzhic/article/details/1896878http://blog.csdn.net/macle2010/article/details/5980965 该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g ...2013-06-07 13:53:00 · 72 阅读 · 0 评论 -
Oracle引起阻塞的情况
Oracle引起阻塞的情况一、唯一性约束引起的阻塞:在session1执行下面的语句中:--创建一个表create table t(x int primary key);--在表中插入一条数据,并提交。insert into t values(1);commit;--修改这条数据,但不提交。update t set x = 2 where x= 1;在Sessions2中,执行以下操作:...2013-06-19 09:53:00 · 803 阅读 · 0 评论 -
如何确定系统中存在没有绑定变量的情况
如何确定系统中存在没有绑定变量的情况,可以使用ASKTOM网站提供的remove_constants()函数查看共享池中SQL运行情况create or replace function remove_constants(p_query in varchar2) return varchar2isl_query long;l_char varchar2(1);l_in_quotes boolea...2013-06-19 09:51:00 · 238 阅读 · 0 评论 -
数据库并发
Oracle模拟数据库并发的一个例子在session1执行下面的语句中:--创建一个表create table t(x int primary key);--在表中插入一条数据,并提交。insert into t values(1);commit;--修改这条数据,但不提交。update t set x = 2 where x= 1;在Sessions2中,执行以下操作:update t...2013-06-19 09:46:00 · 93 阅读 · 0 评论 -
Oracle发送邮件
CREATE OR REPLACE PROCEDURE send_mail(p_recipient VARCHAR2, -- 邮件接收人 p_subject VARCHAR2, -- 邮件标题 p_message VARCHAR...2012-12-08 14:55:00 · 137 阅读 · 0 评论 -
ORACLE 内置函数之 GREATEST 和 LEAST
转载http://dlblog.iteye.com/blog/1274005 Oracle比较一列的最大值或者最小值,我们会不假思索地用MAX和MIN函数,但是对于比较一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有内置函数实现这个功能:COALESCE/GREATEST/LEAST. 1.COALESCE返回该表达式列表的第一个非空value。格式...2013-04-03 23:27:00 · 100 阅读 · 0 评论