PL/SQL
文章平均质量分 62
Lijun_blue
这个作者很懒,什么都没留下…
展开
-
oracle主键的设置方法
主键: 1.主键约束: 一个表只能有一个主键约束。主键可以是单个字段,也可以是多个字段。无论是哪种情况,其所有字段都是NOT NULL。 2.Unique约束:一个表可以有多个Unique约束,Unique的字段可以为NULL。 3.主键与Unique:不同点在于一个表只能有一个主键约束,但是可以有多个Unique约束;主键所有字段都是not null,unique可以是null;相同点原创 2010-05-04 13:01:00 · 2425 阅读 · 2 评论 -
EXECUTE IMMEDIATE及Using的使用方法
<br />这段代码同样是执行了1000条insert语句,但是每一条语句都是不同的,因此ORACLE会把每条语句硬解析一次,其效率就比前面那段就低得多了。如果要提高效率,不妨使用绑定变量将循环中的语句改为<br /> sqlstr:='insert into 测试表 (:i,:i+1,:i*1,:i*2,:i-1) ';<br /> execute immediate sqlstr using i,i,i,i,i;<br />这样执行的效率就高得多了。<br />我曾试着使用绑定变量来转载 2010-09-27 09:16:00 · 784 阅读 · 0 评论 -
varchar2的参数(byte和char)
<br />转自:http://www.ll19.com/log/2010/04/05/68.html#<br /> <br /> <br />由于一个汉字在我的GBK系统里占用2个字节,所以byte的只能插入2个汉字,而char的可以插入5个汉字。<br />所以byte 就是字节数,对于汉字,GBK占用2个字节,如果是UTF-8则占用3个字节。<br />为了充分利用4000个的上限,给自己减少麻烦,建议存储含有中文文字的字段时,采用char类型。<br /><br />下面是测试<br /转载 2010-12-14 09:39:00 · 557 阅读 · 0 评论 -
ORACLE表数据转换成XML文件
<br />今天在看ITPUB论坛上的帖子,需要把oracle的表数据转换成XML文件。<br />采用DBMS_XMLGEN包可以解决此问题。<br /> <br />SQL> create table test_xml(id number,name varchar2(20));<br /> <br />Table created<br />SQL> insert into test_xml values(1,'blue');<br /> <br />1 row inserted<br /原创 2010-11-10 13:45:00 · 3209 阅读 · 0 评论 -
group by cube
对group by cube而言,将会生成2的N次方组总数,这里的N是group by中的列的数目。原创 2010-11-15 14:00:00 · 984 阅读 · 0 评论 -
group by grouping sets
<br />group by 后带grouping sets子句 效果就是只返回小记记录,即只返回按单个列分组后的统计数据,不返回多个列组合分组的统计数据。<br />例1:Group by grouping sets(A )<br />产生的分组种数:1 种;<br />第一种:group by A<br />返回结果集:即为以上一种分组的统计结果集。<br /><br />例2:Group by grouping sets(A ,B)<br />产生的分组种数:2 种;<br /原创 2010-11-15 15:12:00 · 956 阅读 · 0 评论 -
group by rollup
<br />首先引用ITPUB上的总结:<br />rollup(a,b,c)----------------> 从右到底递减汇总<br />====>group by a,b,c (减0次)<br />UNION ALL<br />====>group by a,b (减1次)<br />UNION ALL<br />====>group by a (减2次)<br />UNION ALL<br />====>group by null(全部汇总) (全原创 2010-11-15 16:57:00 · 796 阅读 · 0 评论 -
oracle在存储过程中执行DDL语句
昨晚同事问如何在存储过程中执行DDL语句,整理一下: 默认情况下,oracle对存储过程是使用所有者权限,也就是说:如果用户B条用A 用户下的存储过程,使用的是A用户的对象权限和系统权限。如果A用户没有权限的话,用户B执 行就会报错。 所以第一种办法就是授予用户执行存储过程中DDL的权限。 另一种办法是通过在存储过程中使用authid Current_user来讲存储过程转化原创 2011-12-21 09:19:08 · 3458 阅读 · 0 评论 -
从v$sql中获得sql文本的全部
set linesize 132 pagesize 999column sql_fulltext format a60 word_wrapbreak on sql_text skip 1selectreplace(translate(sql_fulltext,'0123456789','999999999'),'9','')SQL_FULLTEXTfrom v$sqlwhere s原创 2012-01-10 09:25:41 · 747 阅读 · 0 评论