欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
案例學(xué)習Oracle錯誤:ORA-00904

案例學(xué)習Oracle錯誤:ORA-00904


   

 


  ORA-00904 invalid column name

  ORA-00904: 無(wú)效的列名

  Cause The column name entered is either missing or invalid.

  Action Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, it must be enclosed in double quotation marks. It may not be a reserved word.

  原因:列丟失或無(wú)效列名。

  方案:輸入有效的列名。一個(gè)有效的列名必須是以字母開(kāi)頭,小于30個(gè)字符,并且只包含字母、數字或一些特殊的符號$,_,#。如果還包含其它的字符,那么這段字符必須用雙引號引起來(lái)。列名不能是關(guān)鍵字。

  案例一:創(chuàng )建表時(shí)出現的問(wèn)題

  問(wèn)題描述:

  SQL> DESC S_CUSTOMER;

  名稱(chēng) 是否為空? 類(lèi)型

  -----------------------------------------

  id NOT NULL NUMBER(7)

  name NOT NULL VARCHAR2(50)

  phone VARCHAR2(25)

  address VARCHAR2(400)

  city VARCHAR2(30)

  state VARCHAR2(20)

  country VARCHAR2(30)

  zip_code VARCHAR2(75)

  credit_rating VARCHAR2(9)

  sales_rep_id NUMBER(7)

  region_id NUMBER(7)

  comments VARCHAR2(255)

  但是當我SELECT的時(shí)候總是報錯:

  SQL> SELECT ID FROM S_CUSTOMER;

  SELECT ID FROM S_CUSTOMER

  *

  ERROR 位于第 1 行:

  ORA-00904: "ID": 無(wú)效的標識符

  怎么會(huì )這樣呢?

  解決方案:ORACLE通過(guò)訪(fǎng)問(wèn)SQL Server的數據庫鏈接時(shí),用select * 的時(shí)候字段名是用雙引號引起來(lái)的。你創(chuàng )建表的語(yǔ)句加了雙引號的嗎?估計是PD類(lèi)似的工具創(chuàng )建的腳本吧?

  看下面的例子

  SQL> create table test ("id" number not null);

  表已創(chuàng )建。

  SQL> select ID FROM test;

  select ID FROM test

  *

  ERROR 位于第 1 行:

  ORA-00904: "ID": 無(wú)效的標識符

  SQL> select id from test;

  select id from test

  *

  ERROR 位于第 1 行:

  ORA-00904: "ID": 無(wú)效的標識符

  SQL> desc test;

  名稱(chēng) 是否為空? 類(lèi)型

  ----------------------------------------- -------- ------------

  id NOT NULL NUMBER

  SQL> select "id" from test;

  未選定行

  SQL>

  案例二:

  環(huán)境:solaris+oracle

  問(wèn)題:exp時(shí)遇到

  EXP-00008: ORACLE error 904 encountered

  ORA-00904: invalid column name

  EXP-00000: Export terminated unsuccessfully

  提供的情況:wcs組使用java,所以判斷是java的問(wèn)題。ora-00904時(shí)oracle的一個(gè)bug。

  所以需要使用errorstack來(lái)追蹤錯誤。執行

  alter system set events=‘904 trace name errorstack‘;

  然后到udump下查看trace文件。發(fā)現是exu8jbqu這個(gè)view的問(wèn)題。

  alter system set events=‘904 trace name errorstack off‘;

  查看exu8jbqu是否存在:

  select owner,object_name,object_type,object_id,status

  from dba_objects where object_name=‘exu8jbqu‘;

  發(fā)現存在。重新執行$ORACLE_HOME/rdbms/admin/catexp.sql 創(chuàng )建視圖。

  重新執行exp成功。問(wèn)題解決。

  案例三:

  環(huán)境 unix+oracle

  在做完全導出的時(shí)候,導出表都正常但到導出同義詞時(shí)出錯,錯誤如下:

  exporting synonyms

  exp-0000 racle error 904 encountered

  ora-00904 invalid column name

  exp-0000 exp terminaled unsuccessful

  使用任何一個(gè)用戶(hù)導出該的數據同樣在這個(gè)地方停住,請問(wèn)這是由于什么情況造成的,該如何解決才能正常exp整個(gè)數據庫呢?之前碰上過(guò)類(lèi)似的情況: 數據庫被改了字符集后,導出時(shí)也是到synonym的時(shí)候出錯誤,報"shortname" 錯誤,后來(lái)把字符集改回原來(lái)安裝的時(shí)候選擇的字符集即可。 使這個(gè)問(wèn)題嗎?

  解決方案:原因不是字符集的問(wèn)題,而是同義詞引起的,找出來(lái)將其刪除就可以了。

  案例四:Oracle環(huán)境中訪(fǎng)問(wèn)所有的SQL Server字段出錯

  問(wèn)題描述:我剛剛從Oracle建立了一條到SQL Server的連接,使用的是普通的連接,我想要執行一條select * from tablename@dblink 的命令。然而,我注意到SQL Server表中所有的字段都無(wú)法在Oracle環(huán)境中訪(fǎng)問(wèn)。當我試圖選擇我認為應該在表中的字段的時(shí)候,我得到ORA-00904的錯誤信息:無(wú)效列名。針對這個(gè)問(wèn)題的可能的解釋和解決方案是什么?

  解決方案:當你在你的語(yǔ)句中指定了列名的時(shí)候,確保你用雙引號括住了列名,并且名字是區分大小寫(xiě)的。例如:SELECT "column_A","Column_B" FROM "TableXYz"。

  Oracle傾向于將上述字母轉換為大寫(xiě)字母,SQL Server則對大小寫(xiě)更加敏感。這就是最有可能的原因。
案例五:不訪(fǎng)問(wèn)系統表獲取無(wú)效列名

  問(wèn)題描述:當我從我的應用程序中運行SQL語(yǔ)句的時(shí)候,我得到如下的錯誤信息:“ORA-00904”無(wú)效列名。我的問(wèn)題是,在不訪(fǎng)問(wèn)系統表的時(shí)候,有沒(méi)有一種方式可以獲得有關(guān)這個(gè)錯誤的更多信息,例如那些無(wú)效的列名?

  解決方案:當你獲得這個(gè)消息的時(shí)候運行了什么查詢(xún)?你的答案就在這里。運行的查詢(xún)中的一個(gè)列是無(wú)效的。如果你能運行這個(gè)查詢(xún),那么你就可以看到包括了查詢(xún)中表的信息的“系統表”。只需要開(kāi)啟SQL*Plus 會(huì )話(huà),并且對表(或者一些表)進(jìn)行描述。你的查詢(xún)中的一個(gè)列就不會(huì )是其中一個(gè)表的有效列名了。

  如果你不知道SQL語(yǔ)句是什么,那么你就要運行的時(shí)候進(jìn)行追蹤,找出錯誤中的語(yǔ)句。如果你不熟悉,不知道該怎么做的話(huà),需要請求數據庫管理員的幫助。

  案例六:查看擁有抽象字段數據類(lèi)型的表中記錄出錯

  問(wèn)題描述:我想要查看一個(gè)表中記錄,這個(gè)表中有一個(gè)字段具有抽象的數據類(lèi)型,我創(chuàng )建了如下的類(lèi)型:

  create or replace type marks_ty as object

  (m1 number(3),

  m2 number(3),

  m3 number(3),

  member function totmarks(m1 in number,m2 in

  number,m3 in number)

  return number);

  /

  然后我創(chuàng )建了如下的類(lèi)型體:

  create or replace type body marks_ty as

  member function totmarks(m1 number,m2 number,m3

  number)

  return number is

  begin

  return (m1+m2+m3);

  end;

  end;

  /

  其次,創(chuàng )建了如下的表:

  create table stdmarks

  ( student_id number(4),

  marks marks_ty);

  然后,我向其中插入了一些記錄。之后,我執行了如下的語(yǔ)句:

  select marks.totmarks(marks.m1,marks.m2,marks.m3)

  from stdmarks;

  但是我卻碰到了如下的錯誤信息:

  select marks.totmarks(marks.m1,marks.m2,marks.m3)

  from stdmarks

  *

  ERROR at line 1:

  ORA-00904: invalid column name

  請幫助我。我在Oracle企業(yè)版中都試過(guò)了。

  解決方案:一個(gè)有關(guān)你進(jìn)行的操作的很少被人了解的事實(shí)就是你需要給表名起個(gè)別名,并且在調用成員函數的時(shí)候使用別名。那么,對你的查詢(xún)進(jìn)行如下修改:

  SELECT s.marks.totmarks(marks.m1,marks.m2,marks.m3)

  FROM stdmarks s;

  案例七:探究ORA-00904錯誤信息

  問(wèn)題描述:我注意到您對ORA-00904錯誤信息的解答,這個(gè)ORA-00904錯誤信息是在鏈接SQL 服務(wù)器數據庫表之后,試圖對不同類(lèi)型的列進(jìn)行選擇時(shí)出現的。您的答案說(shuō),每個(gè)列都需要用雙引號來(lái)包圍。這樣做好嗎?我們有一個(gè)應用程序,但是我們并不希望有這樣的限制。這里面有什么考慮嗎?

  解決方案:你可以試試看,改變你的SQL服務(wù)器實(shí)例的校驗,使它不為默認情況下的大小寫(xiě)敏感。此時(shí),表名“MyTable”和“MYTABLE”指的是同一個(gè)表。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
最全的Java筆試題庫之選擇題篇-總共234道【181~234】
oracle測試題1
Oracle 綁定變量
SQL連接查詢(xún)深度探險
Oracle 外鍵創(chuàng )建及使用
create table [Oracle SQL]
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久