更新時間:2022-08-05 09:39:21 來源:動力節點 瀏覽7912次
Oracle標識符無效的原因有哪些呢?
可能是因為你的SQL中列名寫錯了,導致查詢的時候,報的標識符無效。
或是數據庫中沒有這個列名,但是你的SQL語句中有這個字段。但是客戶就出現了這個問題,我也很費解是什么原因導致數據庫的列缺少了。當時我是直接用PL/SQL遠程直接給客戶添加了缺少的字段。
這種情況應該是比較少見的。
不知道大家用過NAVICAT沒,它除了很棒的UI界面外。還有很強大的功能。比如說將mysql的數據一鍵遷移到oracle中去,當然反方向也是可以的。
Oracle會將小寫自動轉換為大寫。比如你數據庫中的字段是小寫,你查詢的SQL語句也是小寫,但是ORACLE 將你的查詢語句轉為了大寫(ORACLE嚴格區分大小寫)這樣去數據庫中查找,它就找不到對應的字段。這樣數據庫就會報錯。
將這段代碼中的表名替換成自己要修改的表名,就可以把表中所有的小寫字段名一下全部換為大寫,很方便。
begin
for c in (select COLUMN_NAME cn from all_tab_columns where table_name='表名') loop
begin
execute immediate 'alter table 表名 rename column "'||c.cn||'" to '||c.cn;
exception
when others then
dbms_output.put_line('表名'||'.'||c.cn||'已經存在');
end;
end loop;
end;
綜上所述,我們在使用ORACLE數據庫的時候,無論是表的名字,還是表中的字段的名字,都要大寫免去不必要的麻煩。如果大家想了解更多相關知識,可以關注一下動力節點的Oracle教程,里面有更豐富的知識等著大家去學習,相信對大家一定會有所幫助的。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習