Oracle使用总结

1. 在ORACLE中Service Name即为数据库名称;

2. 在做删除操作时,需要加Commit进行操作提交;

3. 使用sqlldr将数据进行批量导入到ORACLE中:

    3.1  Sqlldr命令的用法:

          sqlldr userid=LoginName/Password@TNSName control=C:\Users\xxx\Desktop\TestControl.ctl log=C:\Users\xxx\Desktop\load.log

    3.2  测试tns是否可用: tnsping tnsname

    3.3  控制文件

        A、导入数据到Oracle中:

load data
infile "C:\Users\xxx\LoadFile.data"
badfile 'C:\Users\xxx\Output.bad'
append 
into table TableName
fields terminated by ","
(
	FieldA,
	FieldB,
	FieldC
)

        B、合并两列数据/导入固定值:

load data
infile "C:\Users\xxx\LoadFile.csv"
badfile 'C:\Users\xxx\Output.bad'
append 
into table TableName
fields terminated by "," OPTIONALLY ENCLOSED BY '"'
(
    FieldA,
	FieldB1 BOUNDFILLER,
	FieldB2 BOUNDFILLER,
	FieldB  EXPRESSION ":FieldB1||:FieldB2",
	FieldC CONSTANT 'Constant Value'
)

    3.4  数据文件 Input.data

val11,val12,val13
val21,val22,val23
val31,val32,val33

  3.5 错误处理

        TNS:illegal ADDRESS parameters

        解决办法:打开tnsname.org文件(如 D:\app\xxxxxx\product\11.2.0\client_1\network\admin),去掉TNS节点中所有的空格,使每个节点各成一行,即可解决该错误;

 4.  SELECT MOD(ColumName,10)BatchNum FROM TableName

      自动生成生成[0,9]以内的批次号,该批次号不会改变,与以往我们使用的随机数不一样;

 5.  在对ORACLE数据库进行UPDATE/INSERT/DELETE操作时,必须进行Commit操作,否则可能造成在不同的SQL Worksheet中查询后显示的结果不一致;

 6.  DECODE(列名, 值A, 返回值A,值B,返回值B,...)

      可以实现在SQL SERVER类似Case..When的效果;

7.  几种常见的SQL:

      A. 查询Schema及表名:

          SELECT u.USERNAME SchName,t.TABLE_NAME TabName FROM sys.dba_users u LEFT JOIN sys.dba_tables t ON u.USERNAME=t.OWNER;

      B. 查询表的分区:

          SELECT * FROM ALL_TAB_PARTITIONS WHERE TABLE_NAME='TABLE NAME';

      C. 表dual的用法:

          SELECT 'Value 1' ValA,'Value 2' ValB,'Value 3' ValC,sysdate CREATEDDATE FROM dual;

posted on 2018-01-10 22:16  Joye_Zhou  阅读(428)  评论(0编辑  收藏  举报

导航