1.简单变量类型与定义 sql 与pl/sql 通用变量类型: varchar2(max_length) 最大4000字节 char(max_length) 最大2000字节 number(x,y) 最长x位,y位小数 date 7个字节,默认格式DD-Mon-yy 如:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 注意:dual 是只有一行一列的伪表,sys下,方便查询,时间分钟mi和mm 都可行 pl/sql 专用变量类型: boolean true/false/null binary_integer 整数 变量的定义赋值用:“:=” 比如: declare v_gender char(1); v_count binary_integer :=0; v_totle_sal number(7,2) :=0; v_date date :=sysdate+7; -- 默认加的天数 c_pi constant number(3,2) :=3.14; -- 常量 c_vaild boolean not null :true; -- 变量不为null begin dbms_output.put_line('Hello!'); end;
2.复合变量(组合变量) A 表类型(一列数据):类似于数组,有下表和数据两部分组成,没有长度限制,可以动态增长。 declare TYPE ename_table_type --自定义类型 IS TABLE OF varchar2(20) --数据类型是varchar2 INDEX BY binary_integer; v_ename_table ename_table_type; begin select ename into v_ename_table(1) --放入第一个下标 from emp where empno = 7788; dbms_output.put_line(v_ename_table(1)); end; / B 记录类型(相当于面向对象封装的对象类型):包括多个组件,组件的数据类型可以不同, 每个组件叫做field(域)。 declare TYPE emp_record_type IS RECORD (name varchar2(20), job varchar2(10)); emp_record emp_record_type; begin select ename , job into emp_record.name , emp_record.job from emp where empno = 7788; dbms_output.put_line(emp_record.name||' - '||emp_record.job); end; / 注意:“||” 是字符串连接符号,可以将字符串连接起来。
3 %type与%rowtype: declare v_id emp.empno%type; v_job emp.job%type; begin select empno into v_id from emp where ename='SCOTT'; end; 注意:%type表示变量类型是数据库表中字段类型。emp 表中empno 类型是什么,那么v_id 就是什么类型。 如果我们想定义的结构和表emp行记录一样呢? declare /*以前的方式,老办法 TYPE record_type IS RECORD ( id emp.empno%type, name emp.ename%type, job emp.job%type --其他的字段,此处省略.. ); emp_record record_type; */ --新办法,更简洁 emp_record emp%rowtype; begin select empno,ename into emp_record.empno , emp_record.ename from emp where empno = 7788; dbms_output.put_line('name is :'||emp_record.ename); end; 注意:%rowtype:变量类型是emp表全部字段的类型。也就是你当前定义的类型,和emp 所有的字段类型一致, 相当于你定制和一个和emp 表一样的网格,里面可以存放存放和emp 各个字段对应类型的数据。
4 赋值语句: A 直接赋值与表达式赋值: declare v_count number(2) :=0; v_married boolean; emp_record emp%rowtype; begin v_count :=10; emp_record.ename :='fuzhi'; v_married :=(1=2); --表达式赋值 end; 注意:sql和plsql 中“=”表示比较。 B 表达式赋值 declare v_married boolean :=true; v_comm emp.comm%type; begin select comm into v_comm from emp where empno = 7788; v_married :=(v_comm is null); dbms_output.put_line(v_married); -- boolean 类型不能通过这个打印,报错 end; C boolean 可以通过if else 进行判断 declare v_married boolean :=true; v_comm emp.comm%type; begin select comm into v_comm from emp where empno = 7788; v_married :=(v_comm is null); if v_married = true then dbms_output.put_line('true'); else dbms_output.put_line('false'); end if; end; D 赋值使用函数 declare emp_record emp%rowtype; v_count number; v_now char(30); v_user char(20); begin select ename into emp_record.ename from emp where empno = 7788; v_count :=length(emp_record.ename); v_now :=to_char(sysdate,'yyyy-mm-dd'); v_user :=user; dbms_output.put_line(v_now); dbms_output.put_line(v_user); dbms_output.put_line(v_count); end; 注意:user 是当前用户,show user 可以进行查看 E 替代变量的使用: declare emp_record emp%rowtype; v_count number; v_now char(30); v_user char(20); begin select ename into emp_record.ename from emp where empno =&no; dbms_output.put_line(emp_record.ename); end;
相关推荐
同时,PL/SQL支持多种数据类型,包括数值类型(NUMBER)、字符类型(VARCHAR2, CHAR)、日期类型(DATE)等,以及复合类型如记录(RECORD)和表类型(TABLE)。 此外,PL/SQL的包(PACKAGE)概念是将相关的过程和...
PL/SQL变量的声明和使用是编程的基础,涉及到变量的声明、初始化、数据类型、%type属性等。变量的赋值和使用也是需要掌握的内容。 此外,书中还涉及到了ORACLE数据库的安装、存储过程的编写、序列操作、数据类型...
变量有其特定的数据类型,如NUMBER、VARCHAR2、DATE等,这些类型与Oracle数据库的表列类型相对应。 2. **流程控制**:PL/SQL支持条件语句(IF-THEN-ELSE、CASE)和循环语句(FOR、WHILE、LOOP)。这使得我们能够在...
PL/SQL 提供了多种数据类型,例如数字、字符、日期等。数字类型包括整数、浮点数等。字符类型包括字符、字符串等。日期类型包括日期、时间等。 十、基本类型(系统预定义类型) PL/SQL 提供了多种基本类型,例如...
2. 数据类型:PL/SQL支持多种数据类型,包括数值类型(如NUMBER、INTEGER)、字符类型(VARCHAR2、CHAR)、日期时间类型(DATE)、布尔类型(BOOLEAN)、以及复合和引用类型(如记录、表类型、指针等)。 3. 变量与...
2. **数据类型**:PL/SQL支持多种数据类型,包括数值类型(如NUMBER)、字符串类型(如VARCHAR2、CHAR)、日期时间类型(如DATE)、布尔类型(BOOLEAN)以及复合数据类型(如记录和数组)。 3. **变量声明和赋值**...
2. **数据类型**:PL/SQL有多种内置数据类型,如NUMBER(数字)、VARCHAR2(可变长度字符串)、DATE(日期时间)、BOOLEAN(布尔值)等。此外,还可以定义对象类型和复合类型。 3. **流程控制**:包括条件语句(IF-...
1. **变量和数据类型**:在PL/SQL中,我们有多种数据类型,包括数值型(NUMBER、BINARY_INTEGER、INTEGER)、字符型(VARCHAR2、CHAR)、日期型(DATE)、布尔型(BOOLEAN)等,以及PL/SQL特有的对象类型和复合类型...
- **简单类型**:如NUMBER、VARCHAR2、DATE等,用于存储基本数据类型。 - **复合类型**:如数组、记录(%ROWTYPE),允许存储多个值或整个数据库行。 - **%ROWTYPE**:使用%ROWTYPE定义的变量会自动匹配对应表的列...
在PL/SQL中,变量的声明通常在`DECLARE`部分进行,变量类型可以是基本数据类型如`NUMBER`、`VARCHAR2`,也可以是表中的某一列的类型,例如`emp.empno%TYPE`表示变量类型与`emp`表中的`empno`列相同。变量赋值则通过`...
14. **PL/SQL内置函数**:Oracle提供了大量的内置函数,如数学函数、字符串函数、日期时间函数等,用于处理各种数据类型。 15. **动态SQL**:通过EXECUTE IMMEDIATE语句,可以在运行时构建和执行SQL,增强了程序的...
全面对比 T-SQL 与 PL/SQL T-SQL 和 PL/SQL 是两种不同的数据库语言,它们都用于管理和操作关系数据库管理系统(RDBMS)。T-SQL 是微软公司开发的 SQL Server 数据库管理系统的脚本语言,而 PL/SQL 是 Oracle 公司...
#### 二、PL/SQL简介 - **定义**: PL/SQL(Procedural Language for SQL)是在标准SQL的基础上增加的过程化处理能力的语言。 - **作用**: PL/SQL作为Oracle客户端工具访问Oracle服务器的操作语言,也是Oracle对SQL...
在PL/SQL中,变量和常量需要在声明部分定义,并指定数据类型。常量用CONSTANT关键字声明,变量则通过赋值语句或SELECT INTO语句赋值。例如: ```sql DECLARE icode VARCHAR2(6); p_catg VARCHAR2(20); p_rate ...
二、PL/SQL变量与数据类型 在PL/SQL中,我们可以声明各种数据类型的变量,如数值型(NUMBER)、字符型(VARCHAR2、CHAR)、日期型(DATE)等。变量可以按需分配内存,它们可以在代码块中被赋值和使用。 三、PL/SQL...
### Oracle 实验五 PL/SQL编程 #### 实验目的 ...通过上述步骤,不仅加深了对PL/SQL数据类型、控制结构和游标的理解,还掌握了如何编写和运行函数、过程以及触发器,进一步提高了数据库管理能力。
PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库的一种扩展,它将SQL语句与过程性编程语言结合在一起,为数据库管理提供了更强大的功能。本篇文章主要探讨PL/SQL的基础知识,包括其...
3. **变量与数据类型**:PL/SQL支持多种内置数据类型,如NUMBER、VARCHAR2、DATE、BOOLEAN等。变量可以声明在块的声明部分,并在执行部分中进行赋值和操作。 4. **控制流程语句**:包括IF-THEN-ELSIF-ELSE、CASE、...