一次插入多表的语法
1:INSERT ALL2:INSERT FIRST的语法3:测试用例create table a( id number, name varchar2(20), addr varchar2(20));create table b( id number, name varchar2(20), addr varchar2(20));create table c( id number, name varchar2(20), addr varchar2(20));insert into c values(1,'wzk','hlj');insert into c values(2,'zx ','xj ');insert into c values(3,'www','cds');[@more@]---------无条件插入insert allinto a values(id,name,addr)into b values(id,name,addr)select id,name,addr from c;-------------------------
dbms_random随机包
SQL> desc dbms_randomPROCEDURE INITIALIZE参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL BINARY_INTEGER INFUNCTION NORMAL RETURNS NUMBERFUNCTION RANDOM RETURNS BINARY_INTEGERPROCEDURE SEED参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL BINARY_INTEGER INPROCEDURE SEED参数名称 类型 输入/输出默认值?------------------------------ ----------------------- ------ --------VAL VARCHAR2 IN
oracle 9i 默认表空间的基础(转载)
原地址:http://blog.itpub.net/post/7242/394192. 默认临时表空间一旦被指定,将无法在改成PERMANET:3. 在删除默认临时表空间必须先重新指定默认临时表空间4. 默认临时表空间无法OFFLINE:[@more@]在9i之前,如果一个数据库用户没有被指定默认临时表空间,那么oracle就会使用system表空间作为该用户的临时表空间,这是很危险的。在9i里面,database可以被指定一个默认临时表空间。这样如果数据库用户没有被明确指定临时表空间,oracle 9i就会自动指定database的默认临时表空间作为该用户的临时表空间。 我们可以通过下面的语句来
plsql中动态创建表后插入数据的问题
1 create or replace procedure p_test 2 as 3 begin 4 execute immediate 'create table t4(id number)'; 5 insert into t4 values(3); --将会报错 6* end;SQL> /警告: 创建的过程带有编译错误。SQL> show errorsPROCEDURE P_TEST 出现错误:LINE/COL ERROR-------- -----------------------------------------------------------------5/1 PL/SQL: SQL Statement ignored5/13 PL/SQL: ORA-00942: 表或视图不存在SQL> ed已写入文件 afiedt.buf 1 create or replace procedure p_test 2 as 3 begin
aix下安装ORACLE的感受
今天别的部门的同事做测试数据库用,需要在AIX下安装ORACLE9I,公司对ORACLE维护方面熟悉的人出差了,所以项目经理让我过去看看,正好可以学习一下。我也只好报着试一下的态度。发现9I需要配置的东西真多呀?PROFILE文件写了好一会(照着资料写的)。一切准备好后,运行了RUNINSTALLER之后,竟然没有显示。最后,我检查了下他的IP地址(通过终端连服务器安装),结果他的IP地址和告诉我的IP地址不符。重新设置了下DISPLAY最后终于搞定。我发现安装ORACLE 都差不多,区别就是配置上,但是9I配置的东西确实比10G多些。[@more@]
我的外部表测试一
今天学习了下外部表的基本用法。create table test(id number,name char(20))organization external(type oracle_loaderdefault directory load_areaaccess parameters(records delimited by newlinefields terminated by ','(id,name))location('insert_test.txt'))reject limit unlimited;具有create any directory权限create directory load_area as 'd:';----这个只是外部表的用法一[@more@]
终于从哈尔滨赶回来了
费了九牛二虎之力,终于从哈尔滨赶回来了。也不知道今年的车票为什么这么紧张,竟然连站票都买不到。郁闷呀。。。我提前六天去买票都没有买到,最后还是买了张站票来的(还费了很大的劲)。看样下次提前买票的时候,连站票都要提前预定了呀。[@more@]
start的参数传递
@d:mysql.sql 1 2语法如下:STA[RT] {url | file_name[.ext] } [arg...][@more@]今天CSDN上一个网友问了一个这个问题,如何把SHELL中的变量让SQL文件(mysql.sql)中调用或引用,开始的时候我真的不太清楚,最后查了下文档才发现这个,看样以后还要有功夫看下文挡呀。mysql.sql:select * from test where id=&1 and name = '&2';sqlplus:@d:mysql.sql 1 wzkSQL> select * from test;ID NAME---------- --------------------1 zz3 aaSQL> @d:mysql.sql 1 zz原值 1: select * from test where id=&1 and name = '&2'新
VC6下pro*c/c++的配置
1:tools->options->directories->添加目录:2:projects->settings->添加ORACLE[@more@]1:tools->options->directories->添加目录: D:ORACLEORA92OCILIB D:ORACLEORA92PRECOMPPUBLIC2:projects->settings->添加ORACLE 在PROJECTS OPTIONS里面添加一个 D:oracleora92precompliborasql9.lib搞了好长时间,终于搞定了。呵呵记录下作为纪念!!
NULL的学习
今天看了下yangtingkun老大关于NULL的总结。http://yangtingkun.itpub.net/post/468/245107[@more@]今天看了下yangtingkun老大关于NULL的总结。虽然自己以前也知道这个,但是真的在开发过程中能够考虑到这些真的不太多,在开发的时候,我们总是为了完成任务而做,所以考虑的总是不太仔细。下面节选自:yangtingkun老大的BLOGAND操作图表变为:ANDTRUEFALSENULLTRUETRUEFALSENULLFALSEFALSEFALSEFALSENULLNULLFALSENULLOR操作图表变为:ORTRUEFALSENULLTRUETRUETRUETRUEFALSETRUEFALSENULLNULLTRUENULLNULL对这个我总结几句容易记住的话:(
pfile和spfile
如何创建spfile和pfile[@more@]9i默认是用spfile来维护数据库的。删除spfile如何登陆系统哪?startup pfile='d:oracleoracle92initwang.ora';可以通过pfile创建spfile ;create spfile from pfile 这是存储到默认路径了。 create spfile='d:oraclespfilewang.ora' from pfile='d:oracleinitwang.ora';
动态SQL的一个限制
DDL不允许使用绑定变量[@more@]今天同事在开发PL/SQL程序的时候,就是报绑定变量的错误。最后才发现:PL/SQL中不允许DDL动态SQL带有绑定变量。记录下来,以免忘了 。。。。
DBMS_STANDARD包
COMMIT,ROLLBACK[@more@]原来一直认为COMMIT这些是事务方面的专用,从来没有研究过这些东西到底是作为ORACLE的一个什么哪?有天看到了yangtingkun老大写的一篇文章,才让我了解到这些是标准包里面的存储过程,呵呵。
计算工作时间的问题
计算工作时间的问题[@more@]网上很多这个方法,但是发现大部分都是PL/SQL的。所以自己准备实验下看能否用一个SQL语句来实现。业务是24小时运作,以下四个时间段是休息时间:01:00--03:0007:00--08:3012:00--13:3018:00--18:50我的解决方法:with c as( select to_date('2:30','hh24:mi')+rownum/1440 a from dual connect by to_date('2:30','hh24:mi')+rownum/1440<30 /> start with rownum=1)select count(*) from c where c.a<00 /> (c.a>to_date('03:00','hh24:mi') and c.a<00 /> (c.a>to_date('08:30','hh2
行列转换的问题
行列转换的问题[@more@]我的测试数据:LOVE2008>select * from test; ID NAME ---------- --------------------1 我 1 是 1 谁 2 我 2 是 2 love2008 6 rows selected. 这个是10G的处理方法:(增加了connect_by_isleaf,CONNECT_BY_ROOT,CONNECT_BY_ISCYCLE)select replace(name,'/','') from (select connect_by_isleaf ll,sys_connect_by_path(name,'/') name from (select row_number()over(partition by id order by id) c_id,name,id,row_number()over(partition by id order by id) -1 p_idfrom test) aconnect by prior c_id=p
删除指定父节点的所有子节点
删除3节点及其以下的所有子节点 [@more@]今天一个网友问到,如何删除一个父节点下面的所有子节点。LOVE2008>select * from test;C_ID P_ID---------- ----------1 02 13 14 25 26 39 610 98 rows selected.--删除3节点及其以下的所有子节点LOVE2008>delete from test where c_id in(2 select c_id from test connect by prior c_id=p_id start with p_id=33 union4 select 3 from dual5 );4 rows deleted.LOVE2008>select * from test;C_ID P_ID---------- ----------1 02 14 25 2
开始写自己的BLOG了
开始写自己的BLOG了[@more@]虽然自己现在只是做开发,DBA的知识知道的还很少,但是我相信靠自己的慢慢积累一定会成为一个优秀的DBA的。为了目标前进吧。-------------------------- love2008