一个带参数的存储过程。SQL> CREATE OR REPLACE PROCEDURE HelloWorld1 (2 p_user_name VARCHAR23 ) AS4 BEGIN5 dbms_output.put_line('Hello '>Procedure created.执行SQL> set serveroutput onSQL> exec Call
第一种情况是返回的游标是某个具体的表或视图的数据,如: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTA ( PRESULT OUT SYS_REFCURSOR ) AS BEGIN OPEN PRESULT FOR SELECT * FROM USERS; END P_TESTA; 其中USERS就是数据库中一个表。在
调用
的时候只要声明一个该表的ROWTYPE类型就可以了: SQL-Code: 代码如下: CREATE OR REPLACE PROCEDURE P_TESTB AS VARCURSOR SYS_REFCURSOR;
create procedure
存储过程
名称(随便取) (变量1 数据类型,变量2 数据类型,...,变量n 数据类型)
在这里可以定义常量、变量、游标、复杂数据类型这里可以定义变量、常量
begin
(3)带输入、输出参数的
存储过程
语法:
create procedure
存储过程
(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次
调用
不需要再次编译,用户通过指定
存储过程
的名字并给出参数(如果该
存储过程
带有参数)来
调用
存储过程
。
1.效率高
存储过程
编译一次后,就会存到数据库,每次
调用
时都直接执行。而普通的sql语句我们要保存到其他地方(例如:记事本 上),都要先分析编译才会执行。所以想对而言
存储过程
效率更高。
2.降低网络流量
存储过程
编译好会放在数据库,我..
CALL SP_EMP_REBUILED(); --偶尔用(LINUX
调用
数据库中
存储过程
)
SQL>EXECUTE SP_EMP_REBUILED; --基本不用
SQL>EXEC SP_EMP_REBUILED; --基本不用
BEGIN
SP_EMP_REBUILED; --自动化脚本中常用(
存储过程
内部
调用
另一个
存储过程
/LINUX
调用
数据库中
存储过程
)
TEST窗口执行 --手动
调用
时常用(用于手动
调用
存储过程
)
SELECT function_name(parameter) FROM dual;
其中,function_name是管道函数的名称,parameter是传递给函数的参数。dual是一个虚拟表,用于在没有实际表可用时返回一行数据。
如果需要在
存储过程
中
调用
管道函数,可以使用PL/SQL语法,例如:
DECLARE
result VARCHAR2(100);
BEGIN
result := function_name(parameter);
-- do something with the result
其中,result是
存储过程
中的变量,用于存储管道函数的返回值。注意,在PL/SQL中
调用
管道函数时,不需要使用SELECT语句。