連線條件字元型別不一樣。
drop table wxh_tbd1;
Table dropped.
rop table wxh_tbd2;
Table dropped.
create table wxh_tbd1 (id number ,name varchar2(2000));
Table created.
create table wxh_tbd2 (id varchar2(1000) ,name varchar2(2000));
Table created.
insert into wxh_tbd1 select object_id,object_name from dba_objects;
18667 rows created.
commit;
Commit complete.
insert into wxh_tbd2 select object_id,object_name from dba_objects;
18667 rows created.
commit;
Commit complete.
create index t2 on wxh_tbd1(id);
Index created.
create index t3 on wxh_tbd2(id);
Index created.
create index t1 on wxh_tbd1(name);
Index created.
select * from wxh_tbd1 a ,wxh_tbd2 b where a.id=b.id and a.name='1';
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 422716281
-----------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2519 | 26 (4)| 00:00:01 |
| 1 | NESTED LOOPS | | | | | |
| 2 | NESTED LOOPS | | 1 | 2519 | 26 (4)| 00:00:01 |
| 3 | TABLE ACCESS FULL | WXH_TBD2 | 19022 | 27M| 25 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | T1 | 1 | | 0 (0)| 00:00:01 |
|* 5 | TABLE ACCESS BY INDEX ROWID| WXH_TBD1 | 1 | 1015 | 0 (0)| 00:00:01 |
-----------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("A"."NAME"='1')
5 - filter("A"."ID"=TO_NUMBER("B"."ID"))
select * from wxh_tbd1 a ,wxh_tbd2 b where to_char(a.id)=b.id and a.name='1';
no rows selected
Execution Plan
----------------------------------------------------------
Plan hash value: 186266070
------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 2519 | 3 (0)| 00:00:01 |
| 1 | NESTED LOOPS | | | | | |
| 2 | NESTED LOOPS | | 1 | 2519 | 3 (0)| 00:00:01 |
| 3 | TABLE ACCESS BY INDEX ROWID| WXH_TBD1 | 1 | 1015 | 1 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | T1 | 1 | | 1 (0)| 00:00:01 |
|* 5 | INDEX RANGE SCAN | T3 | 1 | | 1 (0)| 00:00:01 |
| 6 | TABLE ACCESS BY INDEX ROWID | WXH_TBD2 | 1 | 1504 | 2 (0)| 00:00:01 |
------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("A"."NAME"='1')
5 - access("B"."ID"=TO_CHAR("A"."ID"))
ORACLE為什麼不去對A表的id透過to_char轉換,而總是會在varchar2的型別欄位上增加to_number函式。
數字轉char總是可以成功的,而char轉number是可能報錯的。而oracle總是傾向與後者。不知道為什麼。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-683598/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 條件型別型別
- 關於sqlserver字元型別查詢條件區分大小寫SQLServer字元型別
- 使用concatenate連線時,字串型別(String)要比字元型別(C)快字串型別字元
- typescript type 分配條件型別TypeScript型別
- 表連線型別型別
- 關於外連線和where條件
- SQL的連線型別SQL型別
- 資料庫外連線,自然連線,內連線,條件連線,等值連線關係及詳解資料庫
- TypeScript 條件型別精讀與實踐TypeScript型別
- 各種索引型別發生的條件索引型別
- Oracle 連線條件中帶有OR的測試Oracle
- TypeScript 官方手冊翻譯計劃【九】:型別操控-條件型別TypeScript型別
- 32. 基本資料型別、約束條件資料型別
- MySQL 字元型別MySql字元型別
- Kettle自定義資料庫連線型別連線HGDB資料庫型別
- mysql外連線有哪些型別MySql型別
- linux 下的連線型別Linux型別
- MyBatis 基本資料型別條件判斷問題MyBatis資料型別
- 資料型別為date作為查詢條件資料型別
- 字元型別轉換字元型別
- 外連線有 OR 關聯條件只能走 NL優化優化
- Java 設定Excel條件格式(高亮條件值、應用單元格值/公式/資料條等型別)JavaExcel公式型別
- SAP MM 自定義條件型別出現在採購資訊記錄的'條件'介面裡 ?型別
- T-SQL——關於Join on的的連線條件和where的篩選條件的區分SQL
- 申請英國公司需要什麼條件?都有哪些型別?型別
- SQL中on條件與where條件的區別[轉]SQL
- 字元型別轉換成時間型別字元型別
- 【MySQL資料型別3之--字元型別】MySql資料型別字元
- Oracle 在連線條件裡處理和比較 NULL 值OracleNull
- Python之字元型別Python字元型別
- 轉摘_儲存型別與連線方式型別
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- varchar or blob:欄位型別的儲存和溢位條件型別
- 【開發篇sql】 條件和表示式(一) 資料型別SQL資料型別
- pdo連線的時候設定字元編碼是這樣的字元
- WHRER條件裡的資料型別必須和欄位資料型別一致資料型別
- 連線條件是兩個欄位“or”關係的SQL優化SQL優化
- JN專案-查詢條件過濾特殊字元字元