PL/SQL常用语法及举例
PLSQL语句
DECLARE 声明部分
BEGIN 程序编写,SQL语句
EXECPTION 处理异常
END;
/
声明部分(DECLARE)
SQL> set serveroutput on --打开输出
SQL> declare
2 v_num number;
3 begin
4 v_num:=30;
5 dbms_output.put_line('V_NUM'||v_num);
6 end;
7 /
V_NUM30
查找empno为7900的员工的名字
declare
v1 scott.emp.ename%type;
v2 scott.emp.sal%type;
begin
select ename,sal into v1,v2 from scott.emp where empno=7900;
dbms_output.put_line('ename:'||v1);
dbms_output.put_line('sal:'||v2);
end;
/
set serveroutput on
/
查找雇员号和姓名
set serveroutput on
declare
v_eno number;
v_ename varchar2(10);
begin
v_eno:=&empno;
select ename into v_ename from emp where empno=v_eno;
dbms_output.put_line('number:'||v_eno||'name:'||v_ename);
end;
/
求平均工资
SQL> !vi test.sql
SQL> !cat test.sql
declare
v_avgsal number(6,2);
begin
select avg(sal) into v_avgsal from scott.emp where deptno=&no;
dbms_output.put_line('avg_sal:'||v_avgsal);
end;
SQL> @test.sql
7 /
Enter value for no: 20
old 4: select avg(sal) into v_avgsal from scott.emp where deptno=&no;
new 4: select avg(sal) into v_avgsal from scott.emp where deptno=20;
PL/SQL procedure successfully completed.
声明变量的语法
组成:
CONSTANT:定义常量
NOT NULL:表示此变量不允许设置为NULL
:=value:表示在变量声明时,设置好其初始化内容
DECLARE
V_resultA CONSTANT NUMBER NOT NULL:=100;
BEGIN
DBMS_OUTPUT.put_line('v_resultA常量内容:'||(v_resultA));
END;
/
使用%TYPE声明变量类型(对列类型赋值)
DECLARE
eno emp.emono%TYPE;
ename emp.ename%TYPE;
BEGIN
DBMS_OUTPUT.put_line(‘请输入雇员编号:’);
dbms_output.put_line('sal:'||v2);
end;
使用%ROWTYPE标记可以定义表中一行记录的类型(对行类型赋值)
SQL> DECLARE
2 deptRow dept%ROWTYPE;
3 BEGIN
4 SELECT * INTO deptRow FROM dept WHERE deptno=10;
5 DBMS_OUTPUT.put_line('deptno:'||deptRow.deptno||',name:'||deptRow.dname||',loc:'||deptRow.loc);
6 end;
7 /
使用关系运算符
DECLARE
v_url VARCHAR2(50):='www.vdedu.com.cn';
v_num1 NUMBER:=80;
v_num2 NUMBER:=30;
BEGIN
IF v_num1>v_num2 THEN
DBMS_OUTPUT.put_line('A');
END IF;
IF v_url LIKE '%vdedu%' THEN
DBMS_OUTPUT.put_line('includes vdedu');
END IF;
END;
AND OR NOT运算符
DECLARE
v_flag1 BOOLEAN:=TRUE;
v_flag2 BOOLEAN:=FALSE;
v_flag3 BOOLEAN;
BEGIN
IF v_flag1 and (NOT v_flag2) THEN
DBMS_OUTPUT.PUT_LINE('1');
END IF;
IF v_flag1 or v_flag3 THEN
DBMS_OUTPUT.PUT_LINE('2');
END IF;
IF v_flag1 and v_flag3 is null THEN
DBMS_OUTPUT.PUT_LINE('3');
END IF;
END;
PL/SQL常用语法及举例的更多相关文章
- oracle入门(6)——PL/SQL常用语法
[本文介绍] 本文不是”语法大全“,只是记录下作项目里自己常用的一些语法.方便查询. [语法] [输出] (1)输出语法 DBMS_OUTPUT.PUT_LINE( ) [定义] (1)定义变 ...
- PL/SQL常用表达式及举例(二)
使用LOOP循环 declare v_i number:=1; begin loop dbms_output.put_line('v_i='||v_i); exit when v_i>=3; v ...
- PL/SQL常用表达式及举例(一)
IF 判断条件 THEN 满足条件时执行语句 END IF; DECLARE v_countResult NUMBER; BEGIN SELECT COUNT(empno) INTO v_countR ...
- Sql常用语法以及名词解释
Sql常用语法以及名词解释 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) D ...
- sql 常用语法汇总
Sql常用语法 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控 ...
- PL/SQL基本语法
*2.PL/SQL基本语法 1)匿名块 一段不能在数据库存储的PL/SQL. 基本结构如下: DECLARE //变量的声明定义区域(可省略) BEGIN //业务处理 ...
- PL/SQL基础语法入门
先前安装了PL/SQL软件 PL/SQL全称为Procedural Language/SQL. PL/SQL也是一种程序语言,叫做过程化SQL语言,是Oracle数据库对SQL语句的扩展 打PL/SQ ...
- Oracle PL/SQL入门语法点
PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view p ...
- PL/SQL常用设置 可看引用位置更清晰直观 引自:http://blog.csdn.net/xiaoqforever/article/details/27695569
引自:http://blog.csdn.net/xiaoqforever/article/details/27695569 1,登录后默认自动选中My Objects 默认情况下,PLSQL Deve ...
随机推荐
- 【RF库XML测试】Get Elements
Name:Get ElementsSource:XML <test library>Arguments:[ source | xpath ]Returns a list of elemen ...
- Ansible 使用 Playbook 管理 Nginx 配置文件
前面我们已经安装完 Nginx,但是在日常维护中经常需要修改配置文件,并重新加载配置文件,因此来写一个管理 Nginx 配置文件的 Playbook: [root@localhost ~]$ mkdi ...
- Cesium添加水面
var viewer = new Cesium.Viewer('cesiumContainer');var waterPrimitive = new Cesium.Primitive({ //show ...
- NSIS安装vcredist_64.exe
; ExecWait ‘vcredist_x86.exe’ # 一般的安装ExecWait ‘”vcredist_x86.exe” /q’ # silent install 静默安装; ExecWai ...
- Puppet nginx+passenger模式配置
Puppet nginx+passenger模式配置 一.简述:Puppet 运行在单台服务器上默认启动的是一个puppetmaster进程,当遇到client高并发的请求时,基于ruby的WEBRi ...
- 【十大算法实现之naive bayes】朴素贝叶斯算法之文本分类算法的理解与实现
关于bayes的基础知识,请参考: 基于朴素贝叶斯分类器的文本聚类算法 (上) http://www.cnblogs.com/phinecos/archive/2008/10/21/1315948.h ...
- 【VI】如何删除匹配指定字符串的行(已解决)
命令: g/pattern/d 如,删除包含字母 hell 的行 g/hell/d 删除 不 匹配指定字符的行(未验证,有需要的朋友可以试一下) v/pattern/d g!/pattern/d
- 原生js--insertAdjacentHTML
insertAdjacentHTML是IE浏览器提供向DOM中插入html字符串的方法,字符串会自动生成在DOM树中. 其调用方式为elem.insertAdjacentHTML( position, ...
- filter对数组和对象的过滤
1,对数组的过滤 let arr = ['1', '2', '3'] let b = arr.filter(val => val === '2') console.log(b) // ['2] ...
- tornado 数据库操作
tornado是python的web框架,web程序开发中数据库操作是必须的. 安装: tornado的官方文档中提供的说明比较少,而且提供的模块中未找到数据库方面的模块,难道没有针对数据库操作进行封 ...