有阵子没用了,都给忘了.温故知新!
/* In parameter_list parameters are separated by comma(,) */
CREATE OR REPLACE PROCEDURE PROCEDURE_NAME(parameter_list)
/*
BOOLEAN: return type (varchar2,number)
'AS' can be replace by 'IS'. The same as their role.
*/
RETURN BOOLEAN AS
/*Declarative section is here*/
BEGIN
/*Executable section is here*/
EXCEPTION
/*Exception section is here*/
END PROCEDURE_NAME;
/* In parameter_list parameters are separated by comma(,) */
CREATE OR REPLACE FUNCTION FUNCTION_NAME(parameter_list)
/*
BOOLEAN: return type (varchar2,number)
'AS' can be replace by 'IS'. The same as their role.
*/
RETURN BOOLEAN AS
/*Declarative section is here*/
BEGIN
/*Executable section is here*/
RETURN expression; -- Necessary for FUNTION
EXCEPTION
/*Exception section is here*/
END FUNCTION_NAME;
parameter_list_argument:
TYPE: IN ,OUT , IN OUT
/*
1. 与OUT或者IN OUT模式的形式参数相关联的实际参数必须是一个变量,而不能是一个常量或表达式
2. IN模式的形式参数不能被修改
*/
CREATE OR REPLACE FUNCTION GET_ROLES_BY_RES(P_RES_ID IN VARCHAR2)
RETURN VARCHAR2 AS
ROLE_NAMES VARCHAR2(10000);
CURSOR ROLE_RESULT IS
SELECT ROLE_NAME
FROM IES_ROLE IR, Ies_Privs IP
WHERE IR.ROLE_ID = IP.Role_Id
AND IP.RES_ID = P_RES_ID
ORDER BY IR.ROLE_ID;
BEGIN
ROLE_NAMES := '';
--OPEN ROLE_RESULT;
FOR REC IN ROLE_RESULT LOOP
ROLE_NAMES := REC.ROLE_NAME || ';' || ROLE_NAMES;
END LOOP;
--CLOSE ROLE_RESULT;
RETURN ROLE_NAMES;
END GET_ROLES_BY_RES;
本文介绍如何使用PL/SQL创建过程和函数,并通过具体示例展示了如何定义与实现这些程序单元,包括输入输出参数的使用。
305

被折叠的 条评论
为什么被折叠?



