Oracle PL/SQL編程規范指南

發表于:2012-03-02來源:Csdn作者:xuyubotest點擊數: 標簽:oracle
Oracle中常用的命令和函數,做個整理,以備以后用到,方便查閱。 常用命令: 連接sqlplus

  Oracle中常用的命令和函數,做個整理,以備以后用到,方便查閱。

  常用命令:

  連接sqlplus

  命令行下運行cmd進入,如以sys模式登陸,命令如下:

  (1).sqlplus "sys/zhb126 as sysdba"

  (2).sqlplus/nolog connect sys/zhb126 as sysdba

  (3).sqlplus scott/tiger

  啟動數據庫實例

  startup --啟動數據庫的同時啟動控制文件、數據文件

  startup mount --啟動數據庫的同時啟動控制文件、不啟動數據文件

  startup nomount --僅啟動數據庫實例,用于控制文件丟失情況,此時控制文件無法啟動

  關閉數據庫實例

  shutdown --正常關閉(等待所有用戶斷開連接后才能關閉)

  shutdown immediate--建議使用(迫使用戶執行當前SQL后立即斷開連接)

  shutdown transactional--(迫使在當前用戶執行完后立即斷開連接)

  shutdown abort--強制關閉(類db2的db2 stop force)

  查看日志歸檔方式--用startup mount啟動數據庫

  archive log list

  ALTER DATABASE archivelog

  ALTER DATABASE OPEN

  查看sqlplus支持的命令

  help INDEX

  解除用戶鎖

  以安裝oracle時第一步設置的用戶口令登陸(如:sqlplus "sys/zhb126 as sysdba")后執行

  alter user scott account unlock;

  然后執行sqlplus scott/tiger,此時會要求你修改scott的新口令。

  設置命令行支持空格

  set sqlblanklines on

  變量替代--變量替換,這個過程只安排一個執行計劃,可提高執行效率

  SQL> select * from dept where deptno = &t;

  輸入 t 的值: 10

  原值 1: select * from dept where deptno = &t

  新值 1: select * from dept where deptno = 10

  查看緩沖器執行過的命令 (list/l)

  SQL> l

  1* select * from dept where deptno = &t

  SQL> l1

  1* select * from dept where deptno = &t

  緩沖區文件的保持、執行

  SQL> save d:/test.sql --保存緩沖區文件到指定文件中

  已創建 file d:/test.sql

  SQL> @d:/test.sql --執行保存文件的SQL

  查看表結構(describe/desc)

  SQL> desc dept

  保存查詢輸出結果

  SQL> spool D:/spool.txt --開啟spool并指定保存路徑

  SQL> / --執行緩沖區的sql語句

  SQL> spool off --關閉spool

  SQL> edit d:/spool.txt --打開文件查看保存內容

  常用函數:

  sysdate為系統日期 dual為虛表

  日期函數[重點掌握前四個日期函數]

  1.add_months[返回日期加(減)指定月份后(前)的日期]

  select sysdate S1,add_months(sysdate,10) S2,

  add_months(sysdate,5) S3 from dual;

  2.last_day [返回該月最后一天的日期]

  select last_day(sysdate) from dual;

  3.months_between[返回日期之間的月份數]

  select sysdate S1, months_between('1-4月-04',sysdate) S2,

  months_between('1-4月-04','1-2月-04') S3 from dual

  4.next_day(d,day): 返回下個星期的日期,day為1-7或星期日-星期六,1表示星期日

  select sysdate S1,next_day(sysdate,1) S2,

  next_day(sysdate,'星期日') S3 FROM DUAL

  5.round[舍入到最接近的日期](day:舍入到最接近的星期日)

  select sysdate S1,

  round(sysdate) S2 ,

  round(sysdate,'year') YEAR,

  round(sysdate,'month') MONTH ,

  round(sysdate,'day') DAY from dual

  6.trunc[截斷到最接近的日期]

  select sysdate S1,

  trunc(sysdate) S2,

  trunc(sysdate,'year') YEAR,

  trunc(sysdate,'month') MONTH ,

  trunc(sysdate,'day') DAY from dual

  7.返回日期列表中最晚日期

  select greatest('01-1月-04','04-1月-04','10-2月-04') from dual

  字符函數(可用于字面字符或數據庫列)

  1.字符串截取

  select substr('abcdef',1,3) from dual

  2.查找子串位置

  select instr('abcfdgfdhd','fd') from dual

  3.字符串連接

  select 'HELLO'||'hello world' from dual;

  4. 1)去掉字符串中的空格

  select ltrim(' abc') s1,

  rtrim('zhang ') s2,

  trim(' zhang ') s3 from dual

  2)去掉前導和后綴

  select trim(leading 9 from 9998767999) s1,

  trim(trailing 9 from 9998767999) s2,

  trim(9 from 9998767999) s3 from dual;

  5.返回字符串首字母的Ascii值

  select ascii('a') from dual

  6.返回ascii值對應的字母

  select chr(97) from dual

  7.計算字符串長度

  select length('abcdef') from dual

  8.initcap(首字母變大寫) ,lower(變小寫),upper(變大寫)

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97