十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
包只是作为 程序的一个载体而已,你要运行,当然是去调用它!
网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了许昌免费建站欢迎大家使用!
包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!
就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!
楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:
begin
exec 包名.过程名();
end;
函数的调用就不用我写了吧!
oracle是块结构语言,oracle程序划分成几个部分,并在每个部分中写入逻辑代码块,每个块由三个子部分组成。
声明部分:此部分是以关键字DECLARE开头。这是一个可选部分,并定义了程序中要使用的所有变量,游标,子程序和其他元素。
可执行命令部分:此部分包含在关键字BEGIN和END之间,这是一个强制性部分。由程序的可执行oracle语句组成。应该有至少一个可执行代码行,可以只是一个NULL命令,表示不执行任何操作。
异常处理部分 :此部分以关键字EXCEPTION开头。这是一个可选部分,包含处理程序中错误的异常。
每个oracle语句以分号(;)结尾。使用BEGIN和END可以将oracle块嵌套在其他oracle块中。以下是Poracle块的基本结构。
Hello World示例:
END;行表示oracle块的结尾。要从oracle命令行运行代码,需要在代码的最后一行之后键入/字符。当上述代码在oracle提示符下执行时,它会产生以下结果:
oracle标识符:oracle标识符是常量,变量,异常,过程,游标和保留字。标识符包括一个字母,可选地后跟多个字母,数字,美元符号,下划线和数字符号,不得超过30个字符。
默认情况下,标识符不区分大小写。例如,可以使用integer或INTEGER来表示一个数值。 不能使用保留关键字作为标识符。
扩展资料
oracle注释程序:注释可以在编写的oracle代码中包含的说明性文字,并帮助其他人阅读源代码。所有编程语言都允许某种形式的注释。
oracle支持单行和多行注释。注释中的所有字符都被oracle编译器忽略。oracle单行注释以分隔符开头 --(双连字符),多行注释由/*和*/括起来。
当上述代码在oracle提示符下执行时,会产生以下结果:
oracle变量的名称由可选的字母,数字,美元($)符号,下划线和数字符号组成,不能超过30个字符。 默认情况下,变量名不区分大小写。不能将保留的oracle关键字用作变量名称。
oracle编程语言允许定义各种类型的变量,如:日期时间数据类型,记录,集合等,我们将在后面的章节中介绍。 在本章中仅学习基本的变量类型。
执行匿名块:
DECLARE
X VARCHAR2(20);
BEGIN
ETL.PROC_NAME('20130101',X);
DBMS_OUTPUT.PUT_LINE(X);
END;
/
或者在SQLPLUS下声明 VAR X VARCHAR2(20);
EXEC ETL.PROC_NAME('20130101',:X);
PRINT X;
数据块是数据库中最小的数据存储单位,用户再对数据库执行输入输出操作时就是从数据块读取的。在oracle11g中,数据块分为头部信息区和存储区,头部信息区不存放数据,但是存放有关存储区中表数据、索引数据的的相关信息起到引导的作用则存储区真正存放数据记录。
1、新建存储过程,Create or Replace Procedure CHK_SYS_EMP 检查系统工号。
2、定义参数及变量:(TREV IN VARCHAR2,TRES OUT VARCHAR2) IS C_EMP VARCHAR2(25)。
3、存储过程框架用Begin开始,End结束。
4、查看需要调用表的结构以及相关字段。会用到表中的 EMP_NO ENABLED。
5、存储过程按需添加SQL语句。
6、程序运行测试OK。
1.
declare
avg_sal number;
max_sal number;
i integer;
begin
i:=0;
loop
select avg(sal),max(sal) into avg_sal,max_sal from emp;
if avg_sal=5000 and max_sal=6000 then
update emp set sal=sal+100;
i:=i+1;
else
exit;
end if;
end loop;
commit;
dbms_output.put_line('共增加工资:'||to_char(i*100));
end;
2.
declare
cursor c1 is select empno,ename,sal from emp;
begin
for acct in c1 loop
dbms_output.put_line('员工号:'||acct.empno||' 员工姓名:'||acct.ename||' 工资:'||acct.sal);
end loop;
end;
3.
create or replace procedure comSalary
as
cursor c1 is
select deptno,avg(sal) avg1 from emp group by deptno;
begin
for acct in c1 loop
if acct.avg1 3500 then
dbms_output.put_line('部门:'||acct.deptno||' 工资:'||acct.avg1);
end if;
end loop;
end;