PL/SQL編寫的SQL語句插入SqlPlus時,報錯 PLS-00302

最近剛開始用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."字段"來引用。英文

若是輸入法處於英文輸入狀態,則不須要加雙引號。

相關文章
相關標籤/搜索