重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
oracle是块结构语言,oracle程序划分成几个部分,并在每个部分中写入逻辑代码块,每个块由三个子部分组成。
创新互联是一家专业提供泰顺企业网站建设,专注与成都网站建设、做网站、H5建站、小程序制作等业务。10年已为泰顺众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。
声明部分:此部分是以关键字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编程语言允许定义各种类型的变量,如:日期时间数据类型,记录,集合等,我们将在后面的章节中介绍。 在本章中仅学习基本的变量类型。
第一种:只读。参数是只读的,不能修改,即调用时传递进来的是常量,或者变量(但变量不能在存储过程中修改)。通常select及DML类型的存储过程传递的是in类型的参数。
第二种:只写。忽略调用语句传递的任何参数,并在函数(过程)内部给这些参数赋值,因此是只写的。(这种情况是在函数或过程内部给参数重新赋值,但重新赋值后的参数是无法被外部调用的(好像游标类型的参数除外))
CREATE OR REPLACE PROCEDURE "SCOTT"."SWAP" (firstValue out
number, secondValue out number) is
temp number;
begin
temp := firstValue;
firstValue := secondValue;
secondValue := temp;
end swap;
外部调用:
set serveroutput on;
declare
firstVal number;
secondVal number;
begin
firstVal := 10;
secondVal := 20;
scott.swap(firstVal,secondVal);
dbms_output.put_line('first is ' || firstVal);
dbms_output.put_line('second is ' || secondVal);
end;
无法在外部访问到firstValue与secondValue的值。此时打印出的结果为:
first is
second is
第三种:读或写。这可以完全控制参数,读取传递的参数的值。可以再函数(过程)内部修改参数的值,在退出函数(过程)后,这些参数被赋给在函数内部写入的值,这样就可以返回多个值。(即入口参数写入值后,可以传递到函数(过程)的外部,供外部调用的时候使用)
ps:函数中的返回值为如下几种:
char; varchar2; number; integer; date; boolean; table; record
SQL CREATE OR REPLACE PROCEDURE HelloWorld2 (
2 p_user_name IN VARCHAR2,
3 p_out_val OUT VARCHAR2,
4 p_inout_val IN OUT VARCHAR2
5 ) AS
6 BEGIN
7 dbms_output.put_line('Hello ' || p_user_name || p_inout_val || '!');
8 p_out_val := 'A';
9 p_inout_val := 'B';
10 END HelloWorld2;
11 /
Procedure created.
SQL DECLARE
2 p_outval VARCHAR2(10);
3 p_inoutval VARCHAR2(10) := '~Hi~';
4 BEGIN
5 HelloWorld2('Edward', p_outval, p_inoutval);
6
7 dbms_output.put_line('p_outval=' || p_outval);
8 dbms_output.put_line('p_inoutval=' || p_inoutval);
9 END;
10 /
Hello Edward~Hi~!
p_outval=A
p_inoutval=B
PL/SQL procedure successfully completed.
1、定义常量(常量在定义时需要制定初始值,一旦定义气不能再被改变)
格式:常量名 constant 数据类型标识符 [not null] := 值
例:iCountconstantInt not null:=200
说明: 定义常量iCount,值为200;
2、定义基本数据类型变量(变量的内容在运行期间可以发生变化)
格式:变量名类型标识符[not null] := 值
例:sex Boolean not null :=0;
说明:定义变量sex 值为0;
在Oracle中用pl/SQL代码块就可以调用存储过程,如下:
begin
-- Call the procedure
test(is_year_id = :is_year_id,
is_district_id = :is_district_id,
is_district_sub_id = :is_district_sub_id,
is_district_level = :is_district_level,
os_meg = :os_meg,
os_code = :os_code);
end;
参数如果都是输入参数给常量就可以 如果有输出型参数,你就得声明变量,然后传进去,如:
declare
声明变量
begin
-- 调用过程 把输出弄参数用变量传进去 过程调用后解析这个变量值就行了
end;
看了上次给你改的过程,如果要调用那个过程的话可以这么写:
declare
flag number(1);
begin
-- 调用过程 把输出弄参数用变量传进去 过程调用后解析这个变量值就行了
_Login(flag ) ;
--根据你的需要对flag的值不同去做不同的事情
if flag=1 then
--写你要处理的内容
end if;
end;
首先,我也是一个在学习oracle的学生,就你的问题说点微薄的个人看法
通常我所学习的阶段定义常量通常在Pl/sql编程中需要定义各种变量和常量,按照一般语法只需要添加关键词就行了!
declare
pi constant number:=3.14; --constant is keyword for pi;
begin
dbms_output.put_line('是这样 pi :'||pi);
end;
结果是输出
pi=3.14;
呵呵,希望有点小探讨!!
比如数据库里有张表,表里有个字段是UNAME,这个字段有个值叫TEST,现在我们要在java里面使用sql语句查询这个名字叫TEST的其他相关数据,当然条件是UNAME='TEST'。然后我们在java里就可以定义一个常量 string final FNAME='UNAME' 这样我就可以使用这个常量当做列名来用select “+FNAME+"' as colname from docTABNAME";这样你该懂了吧!