2010年7月19日 星期一

Use '&' in oracle Database

oracle 裡面
[ & ]後面的字串會當做變數處理
(變數首碼符號)

set define off;

insert ......

set define on

2010年7月15日 星期四

oracle 自動新增欄位 procedure

SET SERVEROUTPUT ON; --ENABLE

EXEC DBMS_OUTPUT.ENABLE(1000000);

DECLARE

B NUMBER;

BEGIN

SELECT COUNT(*)

INTO B

FROM USER_TAB_COLUMNS

WHERE TABLE_NAME = 'TABLE_A' AND COLUMN_NAME = 'COLUMN_A';

IF B = 0

THEN

EXECUTE IMMEDIATE 'ALTER TABLE TABLE_A ADD(COLUMN_A NVARCHAR2(100) DEFAULT ''IB'' )';

DBMS_OUTPUT.PUT_LINE('ALTER TABLE TABLE_A ADD(COLUMN_A NVARCHAR2(100) DEFAULT ''IB'' )');

END IF;

END;

2010年6月29日 星期二

oracle drop database

shutdown abort;
startup mount exclusive restrict;
drop database_name;
exit;

Oracle imp/exp file

exp userid/password@SID file=d:\file_name.dmp full=y;

imp userid/password@SID file=d:\file_name.dmp ignore=y tables=(table1);
tables=(table1) is option

2010年6月14日 星期一

MS SQL rename table

ALTER TABLE tablename RENAME TO footable

EXEC sp_rename 'OldTableName', 'NewTableName'

EXEC sp_rename
@objname = 'TableName.OldColumnName',
@newname = 'NewColumnName',
@objtype = 'COLUMN'

2010年3月2日 星期二

Oracle marge into

若符合條件則 update,
否則 insert

MERGE INTO Table1 target
USING Table2 source
ON (target.COLUMN1 = source.COLUMN1)
WHEN MATCHED THEN UPDATE SET taeged.COLUMN2 = source.COLUMN2
WHEN NOT MATCHED THEN
INSERT /** (
target.COLUMN1, target.COLUMN2, target.COLUMN3) **/
VALUES (
source.COLUMN1, source.COLUMN2, source.COLUMN3)
;

2010年1月12日 星期二

MSN 檔案傳輸掃毒設定

MSN 檔案傳輸掃毒設定
Antivir

MSN > 工具 > 選項 > 檔案傳輸 > 勾選「使用下列軟體進行病毒掃瞄(V)」
[瀏覽] AntiVir 安裝資料夾裡的avscan.exe
並在後面加上參數" /GUIMODE=3 /PATH=%FILE%" (包含空格,不包含引號)

完成後應該像這樣
"C:\Program Files\AntiVir PersonalEdition Classic\avscan.exe" /GUIMODE=3 /PATH=%FILE%

GUIMODE=3 完全不會跳出視窗
GUIMODE=2 跳出簡易檢視視窗
GUIMODE=1 跳出完整檢視視窗

Kaspersky

MSN > 工具 > 選項 > 檔案傳輸 > 勾選「使用下列軟體進行病毒掃瞄(V)」
[瀏覽] 找到安裝 KIS/KAV 的目錄
- KAV 6 "C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 6.0\avp.exe"
- KIS 6 "C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 6.0\avp.exe"
- KAV 7 "C:\Program Files\Kaspersky Lab\Kaspersky Anti-Virus 7.0\avp.exe"
- KIS 7 "C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 7.0\avp.exe"
並在後面加上參數" scan %1" (包含空格,不包含引號)

完成後應該像這樣
"C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 6.0\avp.exe" scan %1
Kaspersky 7.0則路徑為 Kaspersky Anti-Virus 7.0或Kaspersky Internet Security 7.0

NOD32  (自動關閉視窗)

MSN > 工具 > 選項 > 檔案傳輸 > 勾選「使用下列軟體進行病毒掃瞄(V)」
[瀏覽] NOD32 安裝資料夾裡的nod32.exe
並在後面加上參數" /quit" (包含空格,不包含引號)

完成後應該像這樣
C:\Program Files\ESET\nod32.exe /quit

Norton AntiVirus

MSN > 工具 > 選項 > 檔案傳輸 > 勾選「使用下列軟體進行病毒掃瞄(V)」
[瀏覽] Norton AntiVirus 安裝資料夾裡的ccIMScn.exe

完成後應該像這樣
C:\Program Files\Norton SystemWorks\Norton AntiVirus\ccIMScn.exe

Norton AntiVirus 2003/2004/2005 需先進行 LiveUpdate 。

Avast

MSN > 工具 > 選項 > 檔案傳輸 > 勾選「使用下列軟體進行病毒掃瞄(V)」
[瀏覽] Avast 安裝資料夾裡的ashQuick.exe

完成後應該像這樣
C:\Program Files\Alwil Software\Avast4\ashQuick.exe

2009年10月1日 星期四

Key Code Reference Table

Key Code Reference Table


Key Pressed

Javascript Key Code

backspace

8

tab

9

enter

13

shift

16

ctrl

17

alt

18

pause/break

19

caps lock

20

escape

27

page up

33

page down

34

end

35

home

36

left arrow

37

up arrow

38

right arrow

39

down arrow

40

insert

45

delete

46

0

48

1

49

2

50

3

51

4

52

5

53

6

54

7

55

8

56

9

57

a

65

b

66

c

67

d

68

e

69

f

70

g

71

h

72

i

73

j

74

k

75

l

76

m

77

n

78

o

79

p

80

q

81

r

82

s

83

t

84

u

85

v

86

w

87

x

88

y

89

z

90

left window key

91

right window key

92

select key

93

numpad 0

96

numpad 1

97

numpad 2

98

numpad 3

99

numpad 4

100

numpad 5

101

numpad 6

102

numpad 7

103

numpad 8

104

numpad 9

105

multiply

106

add

107

subtract

109

decimal point

110

divide

111

f1

112

f2

113

f3

114

f4

115

f5

116

f6

117

f7

118

f8

119

f9

120

f10

121

f11

122

f12

123

num lock

144

scroll lock

145

semi-colon

186

equal sign

187

comma

188

dash

189

period

190

forward slash

191

grave accent

192

open bracket

219

back slash

220

close braket

221

single quote

222


2009年8月17日 星期一

2009年6月12日 星期五

[轉] Oracle 課堂筆記分享: synonyms 與 privileges

1.login user: system
(1) --建立一個user名稱test01(CREATE USER test01)密碼預設為test01(語法:IDENTIFIED BY test01)
CREATE USER TEST01 IDENTIFIED BY test01 ;
(2) --賦予test01可以連接資料庫的權限
GRANT CREATE SESSION TO test01;
(3) --建立一個user test02,且賦予連線權限
CREATE USER TEST02 IDENTIFIED BY test02 ;
GRANT CREATE SESSION TO test02;

2.login user: hr (練習建立public synonyms與權限)
(1) --將hr下面的table:departments建立成為公用synonyms:dep_p
create public synonym dep_p for hr.departments;
(2) --賦予user:test01可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test01;

3.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例1與2的設定有問題)
select * from dep_p ;

4.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行會出現錯誤ORA-00942: 表格或視觀表不存在
--,因為雖然dep_p為public,但是在範例2-(2)中沒有設定test02的讀取權限)
select * from dep_p ;

5.login user: hr (練習建立權限)
(1) --賦予user:test02可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test02;

6.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例5的設定有問題)
select * from dep_p ;

7.login user: hr (練習with grant option)
(1) --先將之前建立的權限移除
revoke select on departments from test02;
revoke select on departments from test01;
(2) --賦予test01有with grant option的權限
grant select on departments to test01
with grant option;

(2) --賦予user:test01可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test01;

8.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(以下語法執行若不成功表示上述範例7的設定有問題)
select * from dep_p ;

9.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對)
select * from dep_p ;

10.login user: test01 (練習with grant option)
(1) --練習由user:test01去指定賦予user:test02讀取user:hr的table:departments的權限
grant select on hr.departments to test02;

11.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會可以讀取才對)
select * from dep_p ;

12.login user: hr (練習移除with grant option)
(1) --直接由hr撤銷test01對department的select權限
revoke select on departments from test01;

13.login user: test01 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對,因範例12已經撤銷權限)
select * from dep_p ;

14.login user: test02 (測試是否能讀取public synonyms)
(1) --測試是否能讀取公用synonyms(應該會無法讀取才對,因為範例12已經撤銷父層權限)
select * from dep_p ;

15.login user: hr (練習建立private synonyms與權限)
(1) --將hr下面的table:departments建立成為user:test02私用synonyms:dept
create synonym test02.dept for hr.departments;
(2) --賦予user:test02可以讀取(select)hr裡面的table:departments的權限
grant select on departments to test02;

16.login user: test02 (測試是否能讀取private synonyms)
(1) --測試是否能讀取私用synonyms(應該會可以讀取才對)
select * from dept ;