PLSQL-基本语法与记录类型

简介: PLSQL-基本语法与记录类型

1.基本语法

–执行该句才会输出到控制台

set serveroutput on

declare
--声明的变量、类型和游标
begin
--程序的执行部门(类似于java中的main方法)
dbms_output.put_line('helloworld');//直接输出到控制台
exception
--针对begin块中出现的异常如何处理
--when...then...
--when...then...
--end;

memo1:

declare
--声明变量
--v_sal number(10,2) := 0 --[使用:=进行赋值操作,使用=进行比较操作];
v_sal employees.salary%type;--动态获取数据类型
v_email varchar2(20);
v_hire_date date;
begin
--sql语句的操作:select...into...from...where
select salary,email,hire_date into v_sal,v_email,v_hire_date from employees
where employee_id = 100;
--打印
dbms_output.put_line(v_sal||','||v_email||','||to_char(v_hire_date,'yyyy-mm-dd'));
end;

2.记录类型

declare
--声明记录类型
type emp_record is record(
v_sal employees.salary%type,--动态获取数据类型
v_email varchar2(20),//注意是逗号,最后一行不加
v_hire_date date
);
--定义一个记录类型的成员变量
v_emp_record emp_record;//类似于java中类与成员变量的关系
【--以employees表中的所有的列定义记录类型
--v_emp_record employees%rowtype;】
begin
--sql语句的操作:select...into...from...where
select salary,email,hire_date into
v_emp_record from employees
where employee_id = 100;
--打印
dbms_output.put_line(v_emp_record.v_sal||','||v_emp_record.v_email||','||to_char(v_emp_record.v_hire_date,'yyyy-mm-dd'));
end;
--------------memo2-修改-----------------------
declare
v_emp_id number(10);
begin
v_emp_id := 123;--进行赋值操作
update employees set salart = salart+100 where employee_id = v_emp_id;--这里是“=”
dbms_output.put_line('执行成功')
end;

3.游标与记录类型综合

declare
--声明一个记录类型
type emp_record is record(
v_sal employees.salary%type,
v_empid employees.employee_id%type
);
--声明一个记录类型的变量
v_emp_record emp_record;
--定义游标
cursor emp_sal_cursor is select salary ,employee_id from employees
where department_id = 80;
begin
--打开游标
open emp_sal_cursor;
--提取游标
fetch emp_sal_cursor into v_emp_record;
while emp_sal_cursor % found loop
dbms_output.put_line('emp_id :'||v_emp_record.v_empid||','||'salary :'||v_emp_record.v_sal);
fetch emp_sal_cursor into v_emp_record;
end loop;
--关闭游标
close emp_sal_cursor;
end;
目录
相关文章
|
7月前
|
SQL Oracle 关系型数据库
SQL 中的运算符与别名:使用示例和语法详解
IN运算符允许您在WHERE子句中指定多个值,它是多个OR条件的简写
256 0
|
存储 SQL Java
MySQL存储过程手册,及创建存储过程:循环为所有表添加字段
MySQL存储过程手册,及创建存储过程:循环为所有表添加字段
772 0
MySQL存储过程手册,及创建存储过程:循环为所有表添加字段
|
7月前
|
存储 SQL 关系型数据库
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
MySQL技能完整学习列表7、存储过程和函数——1、存储过程(Stored Procedures)的创建和执行——2、函数(Functions)的创建和使用
83 0
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库——存储过程-if条件判断、参数、case(介绍、用法、案例)
MySQL数据库——存储过程-if条件判断、参数、case(介绍、用法、案例)
422 0
|
SQL
【SQL系列】在WHERE子句中使用别名来引用列
【SQL系列】在WHERE子句中使用别名来引用列
217 0
|
SQL
SQL基本语法和书写格式
SQL基本语法和书写格式
219 0
|
SQL 测试技术
abap代码使用sql语句删除自定义表的1条数据
自定义表,指的是abap开发人员使用SE11创建的透明表。既然是自己创建的表,那么增删改查的时候,基本上很自由,至少可以随意使用sql语句对表的内容进行处理。那么,对于这种情况,如何删除数据呢?如下图,是表的内容,红框中的数据,是我们打算删除的内容:删除一条记录。
2143 0
|
SQL 关系型数据库 PostgreSQL
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 6 章 数据操纵_6.4. 从修改的行中返回数据
6.4. 从修改的行中返回数据 有时在修改行的操作过程中获取数据很有用。INSERT、 UPDATE和DELETE命令都有一个支持这个的可选的 RETURNING子句。使用RETURNING 可以避免执行额外的数据库查询来收集数据,并且在否则难以可靠地识别修改的行时尤其有用。
1033 0
|
SQL
用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符
原文:用字符串连接SQL语句并用EXEC执行时,出现名称 '‘不是有效的标识符  用字符串连接SQL语句并用EXEC执行时,出现名称 '这里是字符串连接的一条SQL语句‘不是有效的标识符  才发现,在写exec @sql 时,忘了在@sql加(),这样写 exec (@sql) 就不会出错了!
873 0