标签:dbms 变量 -- put emp output Oracle 相关 line
PL/SQL表示SQL的过程式语言扩展(Procedural Language Extension to SQL)。 通过添加任何高级语言所拥有的编程结构和子程序, PL/SQL实现了对SQL的扩展 PL/SQL可用于服务器端(Oracle数据库)和客户端(Oracle Forms等)开发 PL/SQL不是独立的编程语言,它是Oracle RDBMS的一部分c/s c:客户端 s:服务器端 b/s b:浏览器 s:服务器端
语法: declare -- 这一部分可以省略,如果没有变量的情况下,可以不写 -- 声明部分: 普通变量(v_) 变量类型: number varchar2 char date .... (); --声明时可以不给值,也可以给值,也可以在执行体里可以修改 常量(c_) constant 值; -- 常量一但声明,不能更改 ,也就是在执行体里不能重新变更值 -- 给变量赋值 := ; 不能用 = 号 begin -- 执行部分 select ename from emp ; -- 条件判断 -- 循环语句 exception -- 异常部分 end;
begin null ; -- 什么也不执行,相当于一个占位符 end ; -- 打印输出 begin dbms_output.put_line('A') ; -- 执行块 end ; -- put_line 和 put 的区别 begin dbms_output.put('A'); -- 执行块 dbms_output.put('B'); -- 执行块 dbms_output.put('C'); -- 执行块 dbms_output.put('D'); -- 执行块 dbms_output.put('E'); -- 执行块 dbms_output.put_line(''); end ;
-- 普通声明变量 declare v_ename1 varchar2(30); --不赋值 v_ename2 varchar2(30) := 'aaa'; -- 赋值 begin dbms_output.put_line(v_ename1); dbms_output.put_line(v_ename2); end ;
-- 普通声明变量 执行块中修改值 declare v_ename1 varchar2(30); --不赋值 v_ename2 varchar2(30) := 'aaa'; -- 赋值 v_empno number; begin v_ename1 := 'sql哥'; v_ename2 := '爽哥'; v_empno := 123; dbms_output.put_line(v_ename1); dbms_output.put_line(v_ename2); dbms_output.put_line(v_empno); end ;
-- 普通声明变量 执行块中修改值 declare v_ename1 varchar2(30); --不赋值 v_ename2 varchar2(30) := 'aaa'; -- 赋值 v_empno number; begin v_ename1 := 'sql哥'; v_ename2 := '爽哥'; v_empno := 123; dbms_output.put_line(v_ename1 || ' ' || v_ename2 || ' ' || v_empno); end ;
-- 声明常量,必须要给初始值: constant 常量 declare v_empno number := 123; c_pi constant number:= 3.1415926; begin dbms_output.put_line(v_empno); dbms_output.put_line(c_pi); end ;
-- 修改常量: constant 常量 declare v_empno number := 123; c_pi constant number:= 3.1415926; c_pi_1 constant number; --报错 常数 'C_PI_1' 的声明必须包含初始赋值 begin v_empno := 2222; c_pi := 3.14; -- 报错 表达式 'C_PI' 不能用作赋值目标 dbms_output.put_line(v_empno); dbms_output.put_line(c_pi); dbms_output.put_line(c_pi_1); end ;
-- %type: 从某一张表中获取表中某一个字段类型 语法: declare 变量 表.字段%type ; begin end ;
-- 例1.从emp表中获取ename字段类型 declare a varchar2(30) ; -- b varchar2(30); b emp.ename%type ; -- 自动接收表中的字段类型及长度 begin dbms_output.put_line(a || b); end ;
-- 例2.从emp表中获取ename字段类型,并赋值 declare a varchar2(30) := 'abc'; b emp.ename%type := 'SMITH' ; begin dbms_output.put_line( a || b ); end ;
-- 例3.从emp表中获取字段类型 declare v_ename emp.ename%type := 'SMITH'; v_empno emp.empno%type := 7400; begin dbms_output.put_line(v_ename || v_empno); end ;
-- 记录类型(复合类型) 语法: -- 将单个变量进行一个封装 declare -- 当前只是声明了一个记录类型 type 类型名 is record( 变量1 类型 , 变量2 表.字段%type , 变量3 类型 , 变量4 表.字段%type ); -- 必须要声明一个变量,来接收记录类型 变量 类型名; begin end ;
-- 例1.声明一个记录类型,并使用 declare type rec_1 is record( v1 varchar2(30) := 'a', v2 emp.ename%type , v3 number , v4 emp.empno%type ); v_emp rec_1;
begin dbms_output.put_line(v_emp.v1); end ;
-- %rowtype 类型(可以获取一张表中所有字段类型) 语法: declare 变量 emp%rowtype ; begin 使用变量类型: 变量.字段 end ;
-- 例1. 通过 %rowtype 获取emp表中所有字段类型 declare v_emp emp%rowtype ; begin v_emp.empno := 1234; v_emp.ename := 'simth'; dbms_output.put_line(v_emp.empno || v_emp.ename); end ;
标签:dbms,变量,--,put,emp,output,Oracle,相关,line 来源: https://www.cnblogs.com/mzf1209/p/16552521.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。