我已經寫過一些Oracle存儲過程,這些過程中有20多個輸入參數,然後有更多的參數需要10個參數,我希望所有的都有一些值,並且不想接受null價值觀,是否有任何我可以聲明在過程定義本身,它可以限制空輸入參數或我將不得不檢查每個值,並提出異常,如果所需的值爲空?如何將NULL輸入參數限制在oracle存儲過程中
9
A
回答
5
在PL/SQL中我不知道如何檢查每一個。
如果您從外部庫調用存儲過程,該庫可能具有該功能。這可能不太可能,因爲經常需要NULL輸入參數。
您可以創建一個幫助程序PL/SQL過程,如果值爲零,如果它爲空以保存冗餘代碼,則會引發異常。然後,您可以編寫一大堆perl/python/groovy,它會吸引您的過程聲明,並將這些調用發送給您的空檢查過程。
9
我知道這是一個老問題,但還有另一種選擇(描述here):
SUBTYPE varchar2_not_null IS VARCHAR2 NOT NULL;
您可以定義此類型(和number_not_null
等),無論是在同一個包內的存儲過程,或者如果你想在很多地方使用它們,可以使用它們自己的包裝。然後你可以聲明這些類型的參數。
如果NULL
被作爲參數傳遞,你會得到一個非常有用的錯誤消息:
cannot pass NULL to a NOT NULL constrained formal parameter
相關問題
- 1. Oracle存儲過程的輸入參數
- 2. 如何限制在存儲過程中輸入的數據?
- 3. 存儲過程NULL參數
- 4. Oracle嵌套表作爲Mybatis存儲過程的輸入參數
- 5. 使用oracle存儲過程檢查輸入參數的空值
- 6. mysql存儲過程輸入參數值
- 7. 將「null」(字面上)插入存儲過程參數
- 8. 如何忽略空參數在存儲過程中的Oracle
- 9. 存儲過程的參數 - 有時NULL
- 10. 如何將具有參數的SQL Server存儲過程轉換爲具有參數的Oracle存儲過程?
- 11. 在SQL Server中限制存儲過程參數值
- 12. 如何在存儲過程中傳遞null參數 - 參數是uniqueidentifier
- 13. Oracle 11g存儲過程參數問題
- 14. 獲得Oracle存儲過程的參數
- 15. Oracle存儲過程與參數問題
- 16. Oracle存儲過程結構化參數
- 17. C#Oracle存儲過程參數順序
- 18. Oracle存儲過程OUT參數
- 19. 限制選定的行數MySQL中的存儲過程參數
- 20. 使用輸入和輸出參數從PHP調用Oracle存儲過程
- 21. 如何從存儲過程(SQL Server 2005)捕獲輸入參數?
- 22. 如何在oracle有out參數時調用存儲過程?
- 23. 確定存儲過程中的輸入和輸出參數
- 24. 插入存儲過程輸出值作爲在Oracle數據庫
- 25. 通輸入參數作爲列名在存儲過程中
- 26. 在存儲過程中正確使用輸入參數
- 27. 輸入參數在查詢存儲過程中傳遞
- 28. 如何進行多輸出參數在存儲過程中
- 29. 將存儲過程輸出參數轉儲到DataGridView行中
- 30. 存儲過程的輸出參數返回null
同上,我不認爲它可能 – 2008-09-22 19:07:33