91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ERROR 1292 (22007): Truncated incorrect DOUBLE value 和ORA-01722: invalid number

發布時間:2020-08-07 11:51:47 來源:ITPUB博客 閱讀:208 作者:gaopengtttt 欄目:MySQL數據庫
其實這種錯誤和隱式轉換有關
主要是由于轉換的時候不能轉換為期望的格式的然后出的問題
比如 1p這個字符要轉換為 int(number)是不可能的

MYSQL 錯誤模擬如下:


myql> show variables like 'sql_mode%';
+---------------+--------------------------------------------+
| Variable_name | Value                                      |
+---------------+--------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------+
1 row in set (0.01 sec)


mysql> use test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A


Database changed
mysql> create table jjjkk (id varchar(20),name varchar(20));
Query OK, 0 rows affected (0.03 sec)


mysql> insert into jjjkk values('1','gaopeng');
Query OK, 1 row affected (0.00 sec)


mysql> update jjjkk set name='gaop' where id=1;
Query OK, 1 row affected (0.05 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> update jjjkk set name='gaop' where id=1;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0


mysql> insert into jjjkk values('1p','gaopeng');
Query OK, 1 row affected (0.01 sec)


mysql> commit;
Query OK, 0 rows affected (0.00 sec)


mysql> update jjjkk set name='gaop' where id=1;
ERROR 1292 (22007): Truncated incorrect DOUBLE value: '1p'




MYSQL 中存在隱式轉換ORACLE中通常會在執行計劃中給出to_char之類的標示
但是MYSQL執行計劃沒有
如上列子雖然'1'可以轉換這個時候沒有報錯。但是新插入的'1p'是不能轉換的
這個在ORACLE中也存在這樣的問題。所以報錯
ERROR 1292 (22007): Truncated incorrect DOUBLE value: '1p'
當然我是嚴格的SQL_MODE,否則則是WARINGS
可以如下試試轉換:
 SELECT CONVERT('1',SIGNED);
 SELECT CONVERT('1p',SIGNED);


然后演示一下ORACLE的報錯:
SQL> create table testmmm( id varchar2(20),name varchar2(20));
Table created


SQL> insert into testmmm values('1','gaopeng');
1 row inserted


SQL> commit;
Commit complete


SQL> select * from testmmm where id=1;
ID                   NAME
-------------------- --------------------
1                    gaopeng


SQL> insert into testmmm values('1p','gaopeng');
1 row inserted


SQL> commit;
Commit complete


SQL> select * from testmmm where id=1;
select * from testmmm where id=1
ORA-01722: invalid number

如果模擬
SQL> select to_number('1p') from dual;
select to_number('1p') from dual
ORA-01722: invalid number


同樣的情況


我們查看一下執行計劃中的隱式轉換信息:
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(TO_NUMBER("ID")=1)
   
僅此記錄MYSQL和ORACLE同樣的報錯
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青岛市| 浦江县| 射阳县| 芮城县| 稻城县| 龙州县| 江川县| 林州市| 界首市| 赤城县| 车致| 南岸区| 临沧市| 绥宁县| 沙河市| 漠河县| 正蓝旗| 汕尾市| 丰城市| 定边县| 龙江县| 台中县| 盐山县| 凤冈县| 克什克腾旗| 盈江县| 贡嘎县| 合水县| 庆阳市| 乌什县| 昌吉市| 陇川县| 筠连县| 洪江市| 云浮市| 罗平县| 天水市| 隆林| 达日县| 陕西省| 宜都市|