我創建了一個存儲過程,用戶可以在參數如何忽略空參數在存儲過程中的Oracle
create or replace procedure MyProcerdure
(
title Film.Title%Type,
country Film.country%Type,
language Film.language%Type,
category Film.category%Type,
refCursor OUT SYS_REFCURSOR)
AS
begin
OPEN refCursor FOR
select Film.Title as FilmTitle,
Film.language as language
Film.category
FROM Film
Where Film.language=language
AND Film.category=category
AND Film.Country=country
//etc...
插頁1個或多個值,但我想允許用戶沒有按」事實不必填寫所有內容並將它們傳遞給參數,這意味着如果用戶只輸入語言而沒有其他任何內容,則返回適當的語言,並假設他輸入了國家和語言,因此結果應該爲WHERE語言和國家/地區等於他插入了什麼
是否有可能在使用oracle的存儲過程中創建這樣的機制?
謝謝
如果你要使用這個動態sql,有一個在加入無點在'ELSE'子句中提到的謂詞。 – Boneist
我相信只有在沒有其他工作的情況下才能使用動態SQL。在這種情況下,我認爲使用一些布爾邏輯的解決方案會更容易和更安全。 – Aleksej
@Boneist我有點遲到這個位實際上沒有'else'代碼會導致異常'ORA-01006:綁定變量不存在' –