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('v_abs=' || v_abs || '该值小于80');
END IF;
END;
三:IF……ELSEIF……同理
……
case 条件控制语句
[<<lable_name>>]
CASE case_operand
WHEN when_operand THEN
statement;
[
WHEN when_operand THEN
statement;
[
WHEN when_operand THEN
statement;
]……
[ELSE statement[statement;]]……;
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='t1';
CASE v_fid
WHEN 'a1' THEN
DBMS_OUTPUT.PUT_LINE('这是苹果');
WHEN 't1' THEN
DBMS_OUTPUT.PUT_LINE('这是香蕉');
ELSE
DBMS_OUTPUT.PUT_LINE('这是黎');
END CASE;
END;
LOOP循环控制语句
[<<lable_name>>]
LOOP
statement……
END LOOP [lable_name];
4.eg:LOOP 写法如下:
DECLARE
v_sum NUMBER(4):=10;
BEGIN
<<bbscip loop>>
LOOP
DBMS_OUTPUT.PUT_LINE('目前v_summ为:' || v_summ);
v_summ:=v_summ-2;
IF v_summ<1 THEN
DBMS_OUTPUT.PUT_LINE('退出LOOP循环,当前v_summ为:' || v_summ);
EXIT bbscip loop;
END IF;
END LOOP;
END;