FUNCTION encounter_for_dataset(p_check_answer_master_id IN check_list_answer_master.check_answer_master_id%TYPE) RETURN NUMBER
IS
l_key_type check_list_answer_master.key_type%TYPE;
l_key check_list_answer_master.key%TYPE;
l_encounter_id NUMBER := 0;
BEGIN
IF p_check_answer_master_id IS NOT NULL THEN
SELECT clam.key_type, NVL(clam.key,'0')
INTO l_key_type, l_key
FROM check_list_answer_master clam
WHERE clam.check_answer_master_id = p_check_answer_master_id;
IF l_key_type = 'E' THEN
BEGIN
l_encounter_id := TO_NUMBER(l_key);
EXCEPTION
WHEN OTHERS THEN
l_encounter_id := 0;
END;
END IF; -- l_key_type = 'E'
END IF; -- p_check_answer_master_id is not null
RETURN l_encounter_id;
END encounter_for_dataset;
0
A
回答
4
這裏有一個行由行總結
FUNCTION encounter_for_dataset(
p_check_answer_master_id IN check_list_answer_master.check_answer_master_id%TYPE
--this is the input variable (note the table.column%type this forces the variable to adhere that the column type if it changes
) RETURN NUMBER --what type to return
IS
/** declaration section, note it is using the table.column%type --this is good practice in case they change
*/
l_key_type check_list_answer_master.key_type%TYPE;
l_key check_list_answer_master.key%TYPE;
l_encounter_id NUMBER := 0;
BEGIN
--if the passed in value is NOT null do the logic within the IF statement
IF p_check_answer_master_id IS NOT NULL THEN
--insert key_type into l_key_type,
--and insert the key (if null then 0) into l_key
--where the check_answer_master_id is equal to the passed in variable
--DO NOTE, IF THERE is NO DATA FOUND it will throw a NO_DATA_FOUND exception which is not handled
SELECT clam.key_type, NVL(clam.key,'0')
INTO l_key_type, l_key
FROM check_list_answer_master clam
WHERE clam.check_answer_master_id = p_check_answer_master_id;
-- if the key type is e, then 'cast' the l_key into a number
--when any exception happens during the 'cast' just set it to 0
IF l_key_type = 'E' THEN
/**this begin..end block allows encapsulation of exception logic as it is used, pretty much a nested try/catch within the function -- this error will not bubble up to the calling program, whereas if the p-check_answer_master_id is not in clam, then that error will bubble up*/
BEGIN
l_encounter_id := TO_NUMBER(l_key);
EXCEPTION
WHEN OTHERS THEN
l_encounter_id := 0;
END;
END IF; -- l_key_type = 'E'
END IF; -- p_check_answer_master_id is not null
--retrun the value (note it defaults to 0)
RETURN l_encounter_id;
END encounter_for_dataset;
3
有人經過若干,
那麼,如果這個數字不爲空,從check_list_answer_master表
查詢密鑰類型
如果該類型是 'E' 則返回鍵爲 'encounter_id'
否則返回0
4
的Oracle documentation都是可以免費從互聯網。它對於新手用戶來說是相當可讀和有用的。 PL/SQL user guide和SQL Reference將是一個很好的開始如果蘭迪沒有回答你的滿意的問題。
這是創建一個函數,它傳入一個值並返回一個數字。傳入的值用於查找表,根據表中找到的值返回不同的值。如果l_key_type(在表中找到),則返回l_key的值,否則返回0.
相關問題
- 1. 誰能告訴我這個代碼是什麼錯誤
- 2. 誰能告訴我這是什麼編碼?
- 3. 誰能告訴我「dataviz」是什麼?
- 4. 誰能告訴我什麼是錯,此代碼
- 5. 誰能告訴我這部分代碼有什麼問題
- 6. 誰能告訴我這是什麼意思
- 7. 誰能告訴我這是什麼類型的語言?
- 8. 誰能告訴我爲什麼這是輸入一個新行
- 9. 誰能告訴我爲什麼這是兩次提示?
- 10. 有人能告訴我這個代碼的問題是什麼?
- 11. 有人能告訴我什麼代碼,這是寫
- 12. 誰能告訴我爲什麼我的代碼產生錯誤?
- 13. 誰能告訴我,是我的片斷
- 14. MySQL + PHP:有誰能告訴我這段代碼有什麼問題嗎?
- 15. 爲什麼Eclipse告訴我這是死代碼?
- 16. 請告訴我什麼是在這段JavaScript代碼
- 17. 請告訴我什麼是這個代碼例外
- 18. 誰能告訴我爲什麼這個功能不起作用
- 19. 有人能告訴我這是什麼編碼語言?
- 20. 誰能告訴我這些黑客試圖在我的網站上做什麼?
- 21. 數據返回null,誰能告訴我我在這裏做錯了什麼?
- 22. 有誰能告訴我爲什麼'和'=='和'是假的?
- 23. 誰能告訴我這個「自我」
- 24. 這是什麼RSpec錯誤告訴我?
- 25. Raphaeljs氣泡圖查詢(誰能告訴我這究竟是什麼圖表?)
- 26. 誰能告訴我這是爲什麼在C語言中發生
- 27. 有誰能夠告訴我這是什麼錯誤在Android Studio中
- 28. 誰能告訴我爲什麼這個jQuery驗證未提交
- 29. 誰能告訴我爲什麼這不顯示在IE中?
- 30. 誰能告訴我這個.INF文件有什麼問題?
您能否更詳細地解釋每行請問的內容。即時通訊新的plsql – code511788465541441 2010-12-03 14:12:45