系統修正部份
1. home 資料搜尋功能修正
內容新增
1. ORA-00002 link
2. ORA-00059 link
感謝支持 Superfunction 敬上
2011年11月14日 星期一
2011年9月13日 星期二
ORA-01847
ORA-01847 day of month must be between 1 and last day of month
錯誤原因:使用時間日期格式的時候輸入不合乎時間日期規則的時間日期資料
處理辦法:輸入有效的時間日期格式,檢查使用的日期區間是否合法
範例
SELECT TO_DATE('2010/12/32', 'YYYY/MM/DD')
FROM DUAL;
這樣就會產生ORA-01847 的錯誤,因為在這一個案例中日期超過31
錯誤原因:使用時間日期格式的時候輸入不合乎時間日期規則的時間日期資料
處理辦法:輸入有效的時間日期格式,檢查使用的日期區間是否合法
範例
SELECT TO_DATE('2010/12/32', 'YYYY/MM/DD')
FROM DUAL;
這樣就會產生ORA-01847 的錯誤,因為在這一個案例中日期超過31
>> 歡迎前往 Superfunction ORA error code
ORA-01407
ORA-01407 cannot update (string) to NULL
錯誤原因:UPDATE 的欄位不可以為空
處理辦法:修正UPDATE 中對非空欄位塞入空值的敘述
範例
建立一個資料表。
CREATE TABLE table
(
AA number not null,
BB varchar2(50) not null );
所建立的欄位AA ,BB 都是要求不可以為空的值。
UPDATE table
SET AA = null
WHERE BB = 100001;
在UPDATE 敘述中有塞入空值就會發生ORA-01407 的錯誤。
錯誤原因:UPDATE 的欄位不可以為空
處理辦法:修正UPDATE 中對非空欄位塞入空值的敘述
範例
建立一個資料表。
CREATE TABLE table
(
AA number not null,
BB varchar2(50) not null );
所建立的欄位AA ,BB 都是要求不可以為空的值。
UPDATE table
SET AA = null
WHERE BB = 100001;
在UPDATE 敘述中有塞入空值就會發生ORA-01407 的錯誤。
>> 歡迎前往 Superfunction ORA error code
ORA-00923
ORA-00923 FROM keyword not found where expected
錯誤原因:在執行SELECT 敘述時沒有FROM 這個關鍵字
處理辦法:把FROM 這一個關鍵字加上去就好了,很簡單
範例
以下的SQL 敘述發生的錯誤是在於敘述式中沒有FROM 關鍵字的使用。
SELECT * TABLE
請修正與法如下,將FROM 關鍵字加到敘述式中。
SELECT * FROM TABLE
錯誤原因:在執行SELECT 敘述時沒有FROM 這個關鍵字
處理辦法:把FROM 這一個關鍵字加上去就好了,很簡單
範例
以下的SQL 敘述發生的錯誤是在於敘述式中沒有FROM 關鍵字的使用。
SELECT * TABLE
請修正與法如下,將FROM 關鍵字加到敘述式中。
SELECT * FROM TABLE
>> 歡迎前往 Superfunction ORA error code
ORA-01756
ORA-01756 quoted string not properly terminated
錯誤原因:在SQL敘述中字串要使用單引號包裝起來,但是單引號少一邊
處理辦法:修正SQL敘述將字串用單引號包裝起來。
範例
下面的SQL敘述會產生ORA-01756 的錯誤,發生的原因是在於當中所要處理的字串aa 只有使用一個單引號去包裝處理,缺少了另外一邊的單引號包裝。
SELECT AA, BB FROM TABLE WHERE AA = 'aa
請開發人員對於這一個錯誤作以下的修正,把整個變數用單引號完整的包裝起來,修改成'aa' 的格式。
SELECT AA, BB FROM TABLE WHERE AA = 'aa'
錯誤原因:在SQL敘述中字串要使用單引號包裝起來,但是單引號少一邊
處理辦法:修正SQL敘述將字串用單引號包裝起來。
範例
下面的SQL敘述會產生ORA-01756 的錯誤,發生的原因是在於當中所要處理的字串aa 只有使用一個單引號去包裝處理,缺少了另外一邊的單引號包裝。
SELECT AA, BB FROM TABLE WHERE AA = 'aa
請開發人員對於這一個錯誤作以下的修正,把整個變數用單引號完整的包裝起來,修改成'aa' 的格式。
SELECT AA, BB FROM TABLE WHERE AA = 'aa'
>> 歡迎前往 Superfunction ORA error code
ORA-01789
ORA-01789 query block has incorrect number of result columns
錯誤原因:在SQL 敘述中有使用到UNION 連接兩部分敘述但是SELECT 的項目數量不一致
處理辦法:修改SELECT撈取的項目數量一致
範例
以下的敘述就是會發生ORA-01789 的錯誤,因為SELECT的欄位有不一致的狀況。
SELECT AA, BB
FROM TABLE
UNION
SELECT AA
FROM TBALE A
UINION 前的SQL 敘述撈取了AA, BB 兩個項目,但是後半段的SQL 卻只有AA 的項目,因為兩段UNION 的SQL 撈取的欄位數量不一致所以導致錯誤。
SELECT AA, BB
FROM TABLE
UNION
SELECT AA, BB
FROM TBALE A
錯誤原因:在SQL 敘述中有使用到UNION 連接兩部分敘述但是SELECT 的項目數量不一致
處理辦法:修改SELECT撈取的項目數量一致
範例
以下的敘述就是會發生ORA-01789 的錯誤,因為SELECT的欄位有不一致的狀況。
SELECT AA, BB
FROM TABLE
UNION
SELECT AA
FROM TBALE A
UINION 前的SQL 敘述撈取了AA, BB 兩個項目,但是後半段的SQL 卻只有AA 的項目,因為兩段UNION 的SQL 撈取的欄位數量不一致所以導致錯誤。
SELECT AA, BB
FROM TABLE
UNION
SELECT AA, BB
FROM TBALE A
>> 歡迎前往 Superfunction ORA error code
2011年9月12日 星期一
ORA-01401
ORA-01401 inserted value too large for column
發生原因:企圖INSERT 的資料長度超過欄位限制
處理辦法:
1.調整SQL 敘述中所操作的值以符合所要塞入的欄位
2.修改資料表的欄位長度限制以符合所要操作的資料長度
範例
建立一個資料表,設定兩個欄位是AA 與BB 長度設定為VARCHAR(2)。
CREATE TABEL TABLE(
AA VARCHAR(2),
BB VARCHAR(2)
)
今天要INSERT 一筆新的資料到資料表中。
INSERT INTO TABEL(
AA,
BB)VALUES(
'aaa',
'bb'
)
這樣就會出現ORA-01401 的錯誤,因為AA的欄位長度限制是VARCHAR(2) 但是INSERT的資料長度是3,因此超過欄位長度的限制,因此修改INSERT 的資料長度或是修改資料表的長度限制即可以解決。
發生原因:企圖INSERT 的資料長度超過欄位限制
處理辦法:
1.調整SQL 敘述中所操作的值以符合所要塞入的欄位
2.修改資料表的欄位長度限制以符合所要操作的資料長度
範例
建立一個資料表,設定兩個欄位是AA 與BB 長度設定為VARCHAR(2)。
CREATE TABEL TABLE(
AA VARCHAR(2),
BB VARCHAR(2)
)
今天要INSERT 一筆新的資料到資料表中。
INSERT INTO TABEL(
AA,
BB)VALUES(
'aaa',
'bb'
)
這樣就會出現ORA-01401 的錯誤,因為AA的欄位長度限制是VARCHAR(2) 但是INSERT的資料長度是3,因此超過欄位長度的限制,因此修改INSERT 的資料長度或是修改資料表的長度限制即可以解決。
>> 歡迎前往 Superfunction ORA error code
ORA-01438
ORA-01438 value larger than specified precision allows for this column
發生原因:在執行INSERT或是UPDATE的時候,給值的數字格式資料長度超過限制
處理辦法:
1.修改數字欄位的資料長度在限制的長度之內
2.修改資料表的資料長度限制
範例
建立一個資料表,設定資料長度分別為NUMBER(2)及VARCHAR(2)。
CREATE TABLE TABEL_NAME(
AA NUMBER(2),
BB VARCGAR(2)
)
這樣就會發生ORA-01438的錯誤,因為AA的欄位長度是2但是卻給了一個長度是3的值。
INSERT TABELE_NAME(
AA,
BB)
VALUES(
123,
'bb')
要排除這樣的錯誤有兩個方法,把INSERT值的長度修改符合限制的長度2。
INSERT TABELE_NAME(
AA,
BB)
VALUES(
12,
'bb')
或是修改資料表的設計。
ALTER TABLE TABLE_NAME
MODIFY AA NUMBER(3)
發生原因:在執行INSERT或是UPDATE的時候,給值的數字格式資料長度超過限制
處理辦法:
1.修改數字欄位的資料長度在限制的長度之內
2.修改資料表的資料長度限制
範例
建立一個資料表,設定資料長度分別為NUMBER(2)及VARCHAR(2)。
CREATE TABLE TABEL_NAME(
AA NUMBER(2),
BB VARCGAR(2)
)
這樣就會發生ORA-01438的錯誤,因為AA的欄位長度是2但是卻給了一個長度是3的值。
INSERT TABELE_NAME(
AA,
BB)
VALUES(
123,
'bb')
要排除這樣的錯誤有兩個方法,把INSERT值的長度修改符合限制的長度2。
INSERT TABELE_NAME(
AA,
BB)
VALUES(
12,
'bb')
或是修改資料表的設計。
ALTER TABLE TABLE_NAME
MODIFY AA NUMBER(3)
>> 歡迎前往 Superfunction ORA error code
ORA-00955
ORA-00955 name is already used by an existing object
錯誤原因:開發人員建立的table, view, index, synonym 的名稱已經被使用
處理辦法:
1.建立唯一的名稱的object
2.drop 已經建立的object 名稱重新建立
範例
要查詢object 的名稱是不是已經存在,變數帶入你要查詢的變數名稱即可以查詢你所用的object是不是已經存在。
SELECT * FROM all_objects
WHERE object_name = 'NAME'
錯誤原因:開發人員建立的table, view, index, synonym 的名稱已經被使用
處理辦法:
1.建立唯一的名稱的object
2.drop 已經建立的object 名稱重新建立
範例
要查詢object 的名稱是不是已經存在,變數帶入你要查詢的變數名稱即可以查詢你所用的object是不是已經存在。
SELECT * FROM all_objects
WHERE object_name = 'NAME'
>> 歡迎前往 Superfunction ORA error code
ORA-27101
Ora-27101 shared memory realm does not exist
發生原因:無法取得分享記憶體的空間
處理辦法:重新設定記憶體的使用範圍
發生原因:無法取得分享記憶體的空間
處理辦法:重新設定記憶體的使用範圍
>> 歡迎前往 Superfunction ORA error code
ORA-01417
ORA-01417 a table may be outer joined to at most one other table
發生原因:開發人員使用outer join 資料表一對多個資料表的對應
處理辦法:請開發人員修正outer join 的使用方法,修改資料表的對應關係。
範例
以下的SQL 敘述就會發生ORA-01417 的錯誤。
SELECT CUSTOMER.ID, CUSTOMER.NAME, CUSTOMER.BIRTHDAY
FROM CUSTOMER, ORDER, PRODUCT
WHERE CUSTOMER.ID = ORDER.ID(+)
AND PRODUCT.ID = ORDER.ID(+)
這樣的錯誤是因為資料表outer join 的關係發生錯誤,ORDER.ID 對應兩個資料表,請修正對應資料表的對應關係如下。
SELECT CUSTOMER.ID, CUSTOMER.NAME, CUSTOMER.BIRTHDAY
FROM CUSTOMER, ORDER, PRODUCT
WHERE CUSTOMER.ID = ORDER.ID(+)
AND PRODUCT.ID = ORDER.ID
發生原因:開發人員使用outer join 資料表一對多個資料表的對應
處理辦法:請開發人員修正outer join 的使用方法,修改資料表的對應關係。
範例
以下的SQL 敘述就會發生ORA-01417 的錯誤。
SELECT CUSTOMER.ID, CUSTOMER.NAME, CUSTOMER.BIRTHDAY
FROM CUSTOMER, ORDER, PRODUCT
WHERE CUSTOMER.ID = ORDER.ID(+)
AND PRODUCT.ID = ORDER.ID(+)
這樣的錯誤是因為資料表outer join 的關係發生錯誤,ORDER.ID 對應兩個資料表,請修正對應資料表的對應關係如下。
SELECT CUSTOMER.ID, CUSTOMER.NAME, CUSTOMER.BIRTHDAY
FROM CUSTOMER, ORDER, PRODUCT
WHERE CUSTOMER.ID = ORDER.ID(+)
AND PRODUCT.ID = ORDER.ID
>> 歡迎前往 Superfunction ORA error code
訂閱:
文章 (Atom)