oracle 中的常量和变量
:变量:通过变量,可以把需要的参数传递进来,经过处理后还可以把值传出去,最终返回给用户。
常量:常量是代码中固化的信息,常量的值从定义开始就是固定的。常量主要用于为程序提供固定和精准的值,包括数值和字符串,如数字/逻辑值。
常量语法格式如下:
constant_name CONSTANT datatype
[NOT NULL]
{:=| DEFAULT} expression;
变量语法格式如下:
variable_name datatype
[
[NOT NULL]
{:=| DEFAULT} expression;
];
在程序中变量和常量的使用方法:
DECLARE
v_fid VARCHAR2(10);
v_fname VARCHAR2(255);
v_fprice number(8,2);
v_date DATE:=SYSDATE;
v_ceshi CONSTANT v_fname%TYPE:='这是测试';
BEGIN
SELECT F_ID,F_NAME,F_PRICE INTO v_fid,v_name,v_fprice
FROM FRUITS
WHERE F_ID = 't1';
DBMS_OUTPUT.PUT_LINE('这个是水果id'|| v_fid);
DBMS_OUTPUT.PUT_LINE('常量是v_ceshi'|| v_ceshi);
END;
注:PL/SQL 中也是可以使用表达式的(运算式)。
oracle 中的基本处理流程
一:IF 控制语句
if语句是对分支做判断的语句,主要包含IF……结构、IF……ELSE结构、IF……ELSEIF……结构。
IF结构语法如下:
IF condition THEN
statements;
END IF;
1.eg: IF 结构写法
DECLARE
v_abs numbers(86+20*3-15**2);
IF v_abs>50 THEN
DBMS_OUTPUT.PUT_LINE('v_abs=' || v_abs || '该值大于50的');
END IF;
DBMS_OUTPUT.PUT_LINE('这是一个IF条件语句');
二:IF……ELSE……结构
IF……ELSE……结构通常用于一个条件需要两个程序分支来执行的情况。IF……ELSE……结构的语法格式如下:
IF condition THEN
statements;
ELSE
statements;
END IF;
2.eg: IF……ELSE……结构写法
DECLARE
v_abs number(8);
BEGIN
v_abs := ABS(86+20*3-15**2);
IF v_abs>80 THEN
DBMS_OUTPUT.PUT_LINE('v_abs=' || v_abs || '该值大于80');
ELSE
IF v_abs<80 THEN
DBMS_OUTPUT.PUT_LINE(&#39;v_abs&#61;&#39; || v_abs || &#39;该值小于80&#39;);
END IF;
END;
三&#xff1a;IF……ELSEIF……同理
……
case 条件控制语句
[<>]
CASE case_operand
WHEN when_operand THEN
statement;
[
WHEN when_operand THEN
statement;
[
WHEN when_operand THEN
statement;
]……
[ELSE statement[statement;]]……&#xff1b;
END CASE[label_name];
3.eg:case……when……写法
DECLARE
v_fid VARCHAR2(10);
BEGIN
SELECT F_ID INFO v_fid
FROM FRUITS
WHERE FRUITS.F_ID&#61;&#39;t1&#39;;
CASE v_fid
WHEN &#39;a1&#39; THEN
DBMS_OUTPUT.PUT_LINE(&#39;这是苹果&#39;);
WHEN &#39;t1&#39; THEN
DBMS_OUTPUT.PUT_LINE(&#39;这是香蕉&#39;);
ELSE
DBMS_OUTPUT.PUT_LINE(&#39;这是黎&#39;);
END CASE;
END;
LOOP循环控制语句
[<>]
LOOP
statement……
END LOOP [lable_name];
4.eg:LOOP 写法如下&#xff1a;
DECLARE
v_sum NUMBER(4):&#61;10;
BEGIN
<>
LOOP
DBMS_OUTPUT.PUT_LINE(&#39;目前v_summ为&#xff1a;&#39; || v_summ);
v_summ:&#61;v_summ-2;
IF v_summ<1 THEN
DBMS_OUTPUT.PUT_LINE(&#39;退出LOOP循环&#xff0c;当前v_summ为&#xff1a;&#39; || v_summ);
EXIT bbscip loop;
END IF;
END LOOP;
END;