聲明游標(biāo) CURSOR mycur(vartype number) is select emp_no,emp_zc from cus_emp_basic where com_no = vartype; 2。打開游標(biāo) open mycur(000627) 注:000627:參數(shù) 3。
示例: set serveroutput on; declare varno varchar2(20); varprice varchar2(20); CURSOR mycur(vartype number) is select emp_no,emp_zc from cus_emp_basic where com_no = vartype; begin if mycur%isopen = false then open mycur(000627); end if; fetch mycur into varno,varprice; while mycur%found loop dbms_output。 put_line(varno||','||varprice); if mycur%rowcount=2 then exit; end if; fetch mycur into varno,varprice;。
啟用審計(jì) alter system set audit_trail = DB scope = spfile; 有些網(wǎng)站上寫可以scope = both,但是實(shí)際修改時(shí)無法修改指定的類型,只能修改到spfile重啟實(shí)例,還望達(dá)人指教。 audit_trail主要有如下幾個(gè)值: NONE:10g的默認(rèn)值,表示禁用數(shù)據(jù)庫(kù)審計(jì); OS:將審計(jì)記錄寫到一個(gè)操作系統(tǒng)文件中。
select * from dba_tables t where t。 table_name = 'AUD$'; select * from dba_tables t where t。
table_name = 'AUDIT$'; select * from dba_tables t where t。table_name = 'AUDIT_ACTIONS'; alter table aud$ move tablespace TBS_PM; alter table AUDIT$ move tablespace TBS_PM; alter table AUDIT_ACTIONS move tablespace TBS_PM; alter index I_aud1 rebuild tablespace TBS_Index; alter index i_audit rebuild online tablespace TBS_Index; alter index i_audit_actions rebuild online tablespace TBS_Index; 另有DBExtened,XML這里不做介紹了,常用的就是以上3個(gè)。
2。修改AUDIT_TRAIL后,重啟實(shí)例,然后指定審計(jì)的表和活動(dòng)。
create table test_audit ( col1 varchar2 (10) ); audit update on test_audit; audit insert on test_audit; insert into test_audit(col1) values ('dfasd3424'); update test_audit t set t。 col1 = '132rf'; commit; select * from dba_common_audit_trail; 1 Standard Audit 19330 8 1 15-9月 -08 12。
SELECT ROWID FROM BSEMPMS WHERE ROWIDTOCHAR(ROWID) LIKE '%BR1AAB%'; 259。 TO_MULTI_BYTE(CHAR) 將 CHAR 中的單字節(jié)轉(zhuǎn)換為等價(jià)的多字節(jié)字符 。
SELECT TO_MULTI_BYTE('ASFDFD') FROM TEST; 260。 TO_SINGLE_BYTE(CHAR) 將 CHAR 中的多字節(jié)轉(zhuǎn)換為等價(jià)的單字節(jié)字符 。
SELECT TO_SINGLE_BYTE('ASFDFD') FROM TEST; 261。 TRANSLATE USING(TEXT USING {CHAR_CS|NCHAR_CS}) 將文本 TEXT 按照指定的轉(zhuǎn)換方式轉(zhuǎn)換成數(shù)據(jù)庫(kù)字符集和民族字符集 。
其中 TEXT 是待轉(zhuǎn)換的 。 USING CHAR_CS 參數(shù)轉(zhuǎn)換 TEXT 為數(shù)據(jù)庫(kù)字符集 , 輸出數(shù)據(jù)類型是 VARCHAR2。
USING NCHAR_CS 參數(shù)轉(zhuǎn)換 TEXT 為數(shù)據(jù)庫(kù)字符集 , 輸出數(shù)據(jù)類型是 NVARCHAR2。 CREATE TABLE TEST(CHAR_COL CHAR(20),NCHAR_COL NCHAR(20)); INSERT INTO TEST VALUES('HI,N'BYE'); SELECT * FROM TEST; 262。
DUMP(EXPR,RETURN_FORMAT,START_POSITION,LENGTH) 返回一個(gè)包含數(shù)據(jù)類型代碼 , 字節(jié)長(zhǎng)度等內(nèi)部表示信息的 VARCHAR2 值 。 返回結(jié)果是當(dāng)前數(shù)據(jù)庫(kù)字符集 , 數(shù)據(jù)類型按照下面規(guī)定的內(nèi)部數(shù)據(jù)類型的編碼作為一個(gè)數(shù)字進(jìn)行返回 : 代 碼 數(shù)據(jù)類型 0 VARCHAR2 1 NUMBER 8 LONG 12 DATE 23 RAW 24 LONG RAW 69 ROWID 96 CHAR 106 MSSLABEL 參數(shù) RETUEN_FORMAT 指定按照下面的基數(shù)表示返回的數(shù)值 。
函數(shù)接受零個(gè)或多個(gè)輸入?yún)?shù),有一個(gè)返回值,返回值的數(shù)據(jù)類型在創(chuàng)建函數(shù)時(shí)定義。定義函數(shù)的語法如下: FUNCTION name [{parameter[,parameter,。
])] RETURN datatypes IS [local declarations] BEGIN execute statements [EXCEPTION exception handlers] END [name] 過程 存儲(chǔ)過程是一個(gè)PL/SQL程序塊,接受零個(gè)或多個(gè)參數(shù)作為輸入(INPUT)或輸出(OUTPUT)、或既作輸入又作輸出(INOUT),與函數(shù)不同,存儲(chǔ)過程沒有返回值,存儲(chǔ)過程不能由SQL語句直接使用,只能通過EXECUT命令或PL/SQL程序塊內(nèi)部調(diào)用,定義存儲(chǔ)過程的語法如下: PROCEDURE name [(parameter[,parameter,。 。
])] IS [local declarations] BEGIN execute statements [EXCEPTION exception handlers ] END [name] 包(package) 包其實(shí)就是被組合在一起的相關(guān)對(duì)象的集合,當(dāng)包中任何函數(shù)或存儲(chǔ)過程被調(diào)用,包就被加載入內(nèi)存中,包中的任何函數(shù)或存儲(chǔ)過程的子程序訪問速度將大大加快。
通過SQL SELECT INTO 或FETCH INTO給變量賦值 SELECT SUM(SALARY),SUM(SALARY*0。 1) INTO TOTAL_SALARY,TATAL_COMMISSION FROM EMPLOYEE WHERE DEPT=10; 常量 常量與變量相似,但常量的值在程序內(nèi)部不能改變,常量的值在定義時(shí)賦予,,他的聲明方式與變量相似,但必須包括關(guān)鍵字CONSTANT。
控制結(jié)構(gòu) Oracle PL/SQL程序段中有三種程序結(jié)構(gòu):條件結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和順序結(jié)構(gòu)。 1) 條件結(jié)構(gòu) 與其它語言完全類似,語法結(jié)構(gòu)如下: if condition then statement1 else statement2 end if ; 2)循環(huán)結(jié)構(gòu) 這一結(jié)構(gòu)與其他語言不太一樣,在PL/SQL程序中有三種循環(huán)結(jié)構(gòu): a。
loop … end loop; b。while condition loop … end loop; c。
for variable in low_bound 。 。
upper_bound loop … end loop; 其中的“…”代表循環(huán)體。 3)順序結(jié)構(gòu) 實(shí)際就是goto的運(yùn)用,不過從程序控制的角度來看,盡量少用goto可以使得程序結(jié)構(gòu)更加的清晰。