最近剛開始用PL/SQL,而後發現寫SQL語句時,運行的時候,會對錶中的字段報錯。編碼
好像是對字段的使用有問題spa
原來寫的錯誤代碼大概像這樣rest
1 DECLARE xuehao XSB.id% TYPE; 2 BEGIN 3 SELECT 4 id INTO xuehao 5 FROM 6 xsb 7 WHERE 8 name = '小明'; 9 DBMS_OUTPUT.PUT_LINE(xuehao); 10 END; 11 /
而後就,報了好多錯啊!!code
這是用PL/SQL寫的,感受不咋地,因此我又換了Navicat Premium,再寫的時候會有不一樣的提示blog
1 DECLARE xuehao XSB."id"% TYPE; 2 BEGIN 3 SELECT 4 XSB."id" INTO xuehao 5 FROM 6 xsb 7 WHERE 8 XSB."name" = '小明'; 9 DBMS_OUTPUT.PUT_LINE(xuehao); 10 END; 11 /
而後,咱們發現,這裏的字段都有雙引號!rem
這就Interesting了,具體是爲何呢?class
其實,對於字段加不加雙引號,區分了這個字段在建立時,是用中文輸入仍是英文輸入的,也就是編碼不同。引用
簡而言之im
若是在建立這個字段的時候,輸入法處於中文輸入狀態,則須要加雙引號,使用Table."字段"來引用。英文
若是輸入法處於英文輸入狀態,則不須要加雙引號。