我正在通過一些代碼,遇到一個視圖,並想知道WHERE語句的哪個部分在做,它看起來像這樣。NUMBER函數(+)
receipt_note.receipt_num(+) = receipt_data.receipt_num
receipt_num是表中的NUMBER。我只是不知道(+)會在這裏做什麼。是否將該數字加1,就像在編碼中您要做的變量++
我正在通過一些代碼,遇到一個視圖,並想知道WHERE語句的哪個部分在做,它看起來像這樣。NUMBER函數(+)
receipt_note.receipt_num(+) = receipt_data.receipt_num
receipt_num是表中的NUMBER。我只是不知道(+)會在這裏做什麼。是否將該數字加1,就像在編碼中您要做的變量++
(+)
是(舊)outer join operator in Oracle。它指定receipt_note
表的receipt_num
列與receipt_data
表之間的外連接。
該語法已過時;新的查詢應該使用OUTER JOIN
,因爲它更具可讀性。
這是在Oracle中編寫外部連接的舊版過時的方式 –
這是舊的,Oracle建議使用ANSI連接語法,但我認爲它不是由Oracle棄用**,將來會完全刪除版本。如果你個人更喜歡這種語法,你可以使用它。如果您不使用最新的Oracle數據庫版本,有時建議您回到舊的Oracle語法,因爲Oracle在與ANSI連接語法相關時存在一些錯誤。例如,如果使用ANSI連接語法編寫查詢,則Materialized Views上的'FAST REFRESH'不可行。同時我不知道這個bug是否已經修復,我還沒有測試。 –
我剛查過Oracle頁面。對於具有快速刷新的MATERIALIZED VIEW,ANSI連接語法是不可能的。 Oracle不認爲這是一個錯誤!如果您有權訪問Oracle支持,請參閱Oracle Doc ID 1372720.1以瞭解詳細信息。 –