oracle学习之路(五)-----oracle数据类型的一般操作

1. 一些常见的运算符

运算符 意义
= 等于
<> , != , ~= , ^= 不等于
< 小于
> 大于
<= 小于或等于
>= 大于或等于
+ 加号
- 减号
* 乘号
/ 除号
:= 赋值号
=> 关系号
.. 范围运算
|| 字符连接符
IS NULL 是空值
BETWEEN AND 介于两者之间
IN 在一列值中间
AND 逻辑与
OR 逻辑或
NOT 取返,如IS NOT NULL, NOT IN

2.变量赋值

  在PL/SQL编程中,变量赋值是一个值得注意的地方,它的语法如下:

  

* 变量赋值

 variable  := expression ;

* 声明同时为变量赋值

 variable  variable_Type:= expression ;

3.变量计算

  • 空值加数字仍是空值:NULL + < 数字> = NULL
  • 空值加(连接)字符,结果为字符:NULL || <字符串> = < 字符串>
  • 布尔值只有TRUE, FALSE及 NULL 三个值
  • 数据库赋值是通过 SELECT语句来完成的,每次执行 SELECT语句就赋值一次,一般要求被赋值的变量与SELECT中的列名要一一对应。如:
 DECLARE
  emp_id    emp.empno%TYPE :=7788;
  emp_name  emp.ename%TYPE;
  wages     emp.sal%TYPE;
BEGIN
  SELECT ename, NVL(sal,0) + NVL(comm,0) INTO emp_name, wages
  FROM emp WHERE empno = emp_id;
  DBMS_OUTPUT.PUT_LINE(emp_name||‘----‘||to_char(wages));
END;

  提示:不能将SELECT语句中的列赋值给布尔变量。

4.数据类型的转换

1. CHAR 转换为 NUMBER: TO_NUMBER(‘100.0‘)

2.NUMBER 转换为CHAR: TO_CHAR(‘123.45‘)

3. 字符转换为日期: v_date := TO_DATE(‘2001.07.03‘,‘yyyy.mm.dd‘);

4.日期转换为字符 v_to_day := TO_CHAR(SYSDATE, ‘yyyy.mm.dd hh24:mi:ss‘) ;

 -- Created on 2015/6/12 by LYH
declare
  str char(10):=‘100.0‘;
  i int:=421;
  total int;
begin
  total:=TO_NUMBER(str)+i;
  Dbms_Output.put_line(TO_CHAR(total));

end;

5.变量作用范围及可见性

在PL/SQL编程中,如果在变量的定义上没有做到统一的话,可能会隐藏一些危险的错误,这样的原因主要是变量的作用范围所致。变量的作用域是指变量的有效作用范围,与其它高级语言类似,PL/SQL的变量作用范围特点是:

  1. 变量的作用范围是在你所引用的程序单元(块、子程序、包)内。即从声明变量开始到该块的结束。
  2. 一个变量(标识)只能在你所引用的块内是可见的。
  3. 当一个变量超出了作用范围,PL/SQL引擎就释放用来存放该变量的空间(因为它可能不用了)。
    1. 在子块中重新定义该变量后,它的作用仅在该块内。

一个例子

-- Created on 2015/6/15 by LYH
declare
  Emess char(4):=‘李四‘;

begin
  declare
  v1 number(10);
  begin
     SELECT fage
     INTO v1
     from t_employee
     where fname=‘Tom‘;

     Dbms_Output.put_line(v1);
  end;

  declare
  v1 number(10);
  begin
     SELECT fage
     INTO v1
     from t_employee
     where fname=‘Jerry‘;

     Dbms_Output.put_line(v1);
  end;

end;
时间: 2024-10-04 03:10:15

oracle学习之路(五)-----oracle数据类型的一般操作的相关文章

oracle学习入门系列之四 oracle数据库简介

oracle学习入门系列之四 oracle数据库简介 终于平滑过渡到oracle了,我们在第一篇中黑了拉里一次,这里就需要给拉里洗白了.话说当年钱钟书先生写完<围城>之后,无意中说,一个鸡蛋就算好吃,也没必要知道下蛋的母鸡是哪只.蛤蟆觉得有点不妥,钱钟书先生那是文人,自然要清高,而且他本是"下蛋"的母鸡当然不愿意被吃蛋的俗人打扰的,况且当时也没有统计粉丝一说.可是我们是吃蛋的啊,而且是大老粗,现在还统计粉丝数量,我们就需要知道谁下的蛋,是不是毒蛋,对不对?也得看看下了这么好

oracle学习之路(二)------数组类型/记录类型的使用

Oracle记录类型介绍 RECORD:用户自定义数据类型,由单行多列的标量构成的复合数据类型,它将一个或多个标量封装成一个对象进行操作记录不可以总体拿来比较也不可以整体判断为空,可以整体拿来赋值,组成类似于多维数组, 将一个或多个标量封装成一个对象进行操作.是一种临时复合对象类型. 记录的创建和赋值 定义记录类型语法如下: TYPE record_name IS RECORD( v1 data_type1 [NOT NULL] [:= default_value ], v2 data_type

Oracle学习之路-SQL篇-预备数据

开始转向Oracle了,记录一下自己的学习历程 先创建一些表吧: ---------------//////创建学生表 create table student(   sno varchar2(10) primary key,   sname varchar2(20),   sage number(2),   ssex varchar2(5) ); -------------/////////创建教师表 create table teacher( tno varchar2(10) primary

Oracle 学习之路开始

今年刚毕业,从毕业到现在工作正式工作四个多月了(实习的几个月就不算了).工作之中遇到的困难不少,学到的东西也不少:但是感觉学到的东西还是不够,毕竟java水很深啊. 现在工作中并不是每天都能学到新的东西,然而碰到的问题并不会减少,所以决定每天下班之后学点东西.正好手上有朋友给的oracle视频,拿到手一段时间了,但是没看多少,所以打算写博客记录下学习笔记,和大家分享,也是激励自己不断学习. 本人小白一枚,博文中有不对的地方还请赐教,有什么好的学习心得大家可以一起分享,为成为大牛而努力.fight

ORACLE学习03-SQLPLUS常用命令和数据类型

一.数据库基本操作 1,创建用户 SQL> create user 用户名 identified by 密码; 2,超级用户system给新用户权限 SQL> grant connect , resource to mike; 授权 连接权限 增删改查权限 3,新用户登录,进入新用户的空间 SQL> connect mike/m111; 4,显示当前用户 SQL>show user; 5,建表,添加数据,增删改查. 6,登录sqlplus >sqlplus 登录名/密码@12

Oracle学习之DATAGUARD(五) 创建logic standby

逻辑备库与物理备库不同,它并不是Primary数据库的一个精确的copy.同一rowid,在逻辑备库上返回的值并不是相同的.有些数据类型或者对象,逻辑备库并不支持同步.在创建逻辑备库之前,你首先要确认,哪些schema及对象是不被SQL-APPLY支持的. 1. 查询不被同步的schema . SQL> set pagesize 200 SQL> SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = 'INTERNAL SCHEMA

oracle学习之路

1.oracle 11g grid安装 http://7038006.blog.51cto.com/7028006/1922719 2.oracle asmca工具创建磁盘组 http://7038006.blog.51cto.com/7028006/1922725 3.oracle 11g database软件安装 http://7038006.blog.51cto.com/7028006/1922731 4.dbca创建数据库 http://7038006.blog.51cto.com/70

Oracle 学习笔记(五)

--表空间,auto: 自动管理, manual: 手动管理   create tablespace  tsp1 datafile 'D:\ORACLE\ORADATA\O10\tsp1.dbf'   size 2M segment space management auto; -- 查看表空间   select tablespace_name,segment_space_management from dba_tablespaces; -- 回退段管理   --系统回退段,存放于 system

Oracle学习之路-SQL篇-连接查询

一,连接查询: 1.内连接用的最多的连接查询,只返回表中符合条件的行.如: /***内连接***/ select j_c.*,j_sc.* from course j_c inner join sc j_sc on j_c.CNO = j_sc.CNO; 2.左外连接 左外连接:除了返回符合条件的行外,还返回左表中所有的行. /**************************左外连接**/ select j_c.*,j_sc.* from course j_c left join sc j_