ORACLE-023:令人煩惱的 ora-01722 無效數字
曾經一段時間內寫sql語句時,老是莫名其妙的報ora-01722。
對於這個錯誤提示,尤其是對於一個複雜的sql語句,很是鬱悶,因為很多時候都不知所然。
通過每次碰到的總結,其實也不是那麼難以解決的,主要原因是:
1、對於兩個型別不匹配(一個數字型別,一個非數字型別,同下)的值進行賦值操作;
2、兩個型別不匹配的值進行比較操作(例如,“=”);
3、to_number函式中的值,非數字的,比如,to_number('a')肯定是不行的,to_number('12306')則是正常的。
要避免這些問題,要做到在寫sql語句時就好認真處理好不同型別的問題。
比如如果要比較的話,同時都用to_number強制轉換(to_number(欄位a) = to_number(欄位b)),
或者同時轉換為字串型別(欄位a||'' = 欄位b||'',都連線一個空字串使之變成字串型別)。
在語句中使用to_number函式時,要保證值一定是數字格式,或者寫好異常處理。
當我們碰到這個錯誤提示時,就從所有用到的數字型別的欄位開始檢查,逐一排查,從而解決問題。
相關推薦
ORACLE-023:令人煩惱的 ora-01722 無效數字
曾經一段時間內寫sql語句時,老是莫名其妙的報ora-01722。對於這個錯誤提示,尤其是對於一個複雜的sql語句,很是鬱悶,因為很多時候都不知所然。通過每次碰到的總結,其實也不是那麼難以解決的,主要原因是:1、對於兩個型別不匹配(一個數字型別,一個非數字型別,同下)的值進行
ORACLE隱式型別轉換 ORA-01722: 無效數字
在做開時經常會遇到ORA-01722: 無效數字 的錯誤,原因在於自動型別轉換出錯.下面舉個例子: CREATE TABLE t1(NAME VARCHAR(2)); INSERT INTO t1 VALUES('a'); INSERT INTO t1 VALUES('b
ORA-01722:無效數字
SELECT * FROM (select a.nursing_unit_code, b.name nursingName, a.ward_code, c.name warName, c.parent_id, a.hospital_area_code from pts.pts_dept_wa
Asp.net SqlDataSource中使用like,報錯ORA-01722: 無效數字
以前在asp.net中,沒有使用過SqlDataSource來連線不同資料庫,首次嘗試卻問題多多,這裡將問題記錄下來,以便後面的朋友參考,更快的解決問題 1,ORA-00936: 缺少表示式 , 這裡主要是語法不清楚所造成的! SqlDataSource 連線sq
ORA-01861: 文字與格式字串不匹配,ORA-01722: 無效數字
SQL> create table Student( 2 id varchar2(20) primary key, 3 &
使用to_number函式,提示ORA-01722無效數字的解決方法
使用to_number()函式時,提示ORA-01722:無效數字 的解決方法 原因分析: 1.顯式原因: 即欄位中存在非數字的字元。 解決方法:(1)替換掉非數字的字元。 (2)使用 OR
ORA-01722 無效數字
ora- 大神 人工智能 tps nbsp 人工 分享 人工智 content 1、錯誤描述 nested exception is java.sql.SQLException:ORA-01722:無效數字 2、錯誤原因 由於字段是數值類型,插入數
ORA-01722: 無效數字的解決方法
List<Atl> atls = commonDao.findByQuery("from Atl a where a.code ="+code);報錯:ORA-01722: 無效數字List<Atl> atls = commonDao.findByQu
oracle字元型別時間轉換 ORA-01843 無效的月份
--oracle中在轉換 字元型別的時間資料有時會報錯 ORA-01843: 無效的月份 如: SQL> select to_date('07-SEP-2017','dd-mon-yy') from dual; select to_date('07-SEP-20
Oracle命令行中顯示:ORA-04076: 無效的 NEW 或 OLD 說明
說明 style new 錯誤 com ont AR 16px 如果 Oracle命令行進行操作時可能出現"ORA-04076: 無效的 NEW 或 OLD 說明" 需要在條件語句中JOB前面添加“old.”即可(因為是在when條件裏面,所以不用“:”。 如果用if代
Oracle:ORA-00911: 無效字元
Hibernate的SQLQuery查詢SQL的時候報的異常:ORA-00911: 無效字元; 庫是Oracle: 列印sql直接在plsql中執行是沒問題的,但是在java程式碼中執行的時候就會報異常:ORA-00911: 無效字元; 其問題根源在SQL的最後結尾處的
oracle將查詢結果匯出文字報錯:ORA-00911:無效的字元
在oracle中通過sql語句查詢資料結果,在使用匯出功能的時候,報錯——ORA-00911:無效的字元。 解決辦法: 去掉sql語句的分號,然後重新執行sql,結果重新生成之後,再次匯出即可。
分享知識-快樂自己:oracle12c建立使用者提示ORA-65096:公用使用者名稱或角色無效
今天在oracle12c上建立使用者,報錯了。如下圖: 我很鬱悶, 就打開了oracle官方網站找了下, 發現建立使用者是有限制的。 2.解決方案 建立使用者的時候使用者名稱以c##或者C##開頭即可。 錯誤寫法: create user zhaojiedi identified by or
ORACLE用SYS登入報ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER解決方法
文章目錄轉載內容:我的情況: 轉載內容: 情況一:使用sqlplus登入 正常輸入使用者名稱的口令,就會報錯,因為SYS是在資料庫之外的超級管理員,所以我們在登入的時候 要在輸入口令:口令+as sysdba(比如:123456 as sysdba) 情況二:使
mybatis批量分批次插入oracle資料庫,報ORA-01745: 無效的主機/繫結變數名...
方法一:迴圈呼叫插入單條記錄的方法,效率真心讓人捉急 (3萬條資料,快三分鐘) public int saveGwghidlist1(List<Gwghid> list) { int xh=0; dele
oracle ORA-01843 無效的月份
values can class 圖片 Language to_date ima span ssi 插入以下數據時,報錯ORA-01843 無效的月份,如下 INSERT INTO EMP VALUES (7499, ‘ALLEN‘, ‘SALESMAN‘, 76
Oracle Error:ORA-01465: 無效的十六進位制數字【解決辦法】
如圖下面的錯誤,當讓表中插入資料時,報一下錯誤。 解決辦法: 1、修改表結構,待插入資料後再修改回來 這個方法就是你把BLOB型別的那個欄位修改為合適的,然後再插入,最後再修改表結構,是不是比較折騰。這個我試了下:通過sql語句修改以下表BLO
Oracle錯誤:ORA-01843:無效月份的問題
在建立了表EMP如下後:CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7,
Oracle ORA-00904: 無效的識別符號
ORA-00904: invalid column name 一個有效的列名必須是以字母開頭,小於30個字元,並且只包含字母,數字或一些特殊的符號$,_,#.如果還包含其它的字元,那麼這段字元必須用雙
Oracle插入日期資料時報錯ORA-01843無效的月份
當在sqlplus或者在plsql上執行插入月份的語句時,比如:insert into emp_test values(1002 , '劉蒼松' , 'Analyst' ,8000 , 1000 , '01-APR-11' , 1001, 10) ;如果報ORA-01843無