oracle sql 变量赋值6,Oracle 过程中变量赋值

下面会报错:

Compilation errors for FUNCTION HR.GET_SAL1

Error: PLS-00103: 出现符号 "SELECT"在需要下列之一时:

* & = - + ; < / > at in

is mod remainder not rem

<> or != or ~= >=

<= <> and or

like like2 like4 likec between || multiset

member submultiset

符号 ";" 被替换为 "SELECT" 后继续。 Line: 8 Text:

select salary into sal from employees where employee_id = id;

这个也会报错:

Compilation errors for FUNCTION HR.GET_SAL1

Error: PLS-00103: 出现符号 "="在需要下列之一时:

constant exception

table

long double ref char time

timestamp interval date binary

national character nchar

符号 "" 被替换为 "=" 后继续。

Line: 5 Text: sal := 0;

转:

PL/SQL支持SQL中的数据类型,PL/SQL中正常支持NUMBER,VARCHAR2,DATE等Oracle

SQL数据类型。声明变量必须指明变量的数据类型,也可以声明变量时对变量初始化,变量声明必须在声明部分。声明变量的语法是:

变量名数据类型[

:=初始值]

语法解析:

数据类型如果需要长度,可以用括号指明长度,比如:varchar2(20)。

声明变量

SQL>

DECLARE

2sname VARCHAR2(20)

:=‘jerry‘;①

3BEGIN

4sname:=sname||‘ and tom‘;②

5dbms_output.put_line(sname);③

6END;

7/jerry

PL/SQL

procedure successfully completed

代码解析:

①声明一个变量sname,初始化值是“jerry”。字符串用单引号,如果字符串中出现单引号可以使用两个单引号(’’)来表示,即单引号同时也具有转义的作用。②对变量sname重新赋值,赋值运算符是“:=”。

③dbms_output.put_line是输出语句,可以把一个变量的值输出,在SQL*Plus中输出数据时,可能没有结果显示,可以使用命令:set

serveroutput on设置输出到SQL*Plus控制台上。

对变量赋值还可以使用SELECT…INTO语句从数据库中查询数据对变量进行赋值。但是查询的结果只能是一行记录,不能是零行或者多行记录

数据库赋值

数据库赋值是通过

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语句中的列赋值给布尔变量。

字符及数字运算特点

空值加数字仍是空值:NULL + < 数字> = NULL

空值加(连接)字符,结果为字符:NULL || =

< 字符串>

原文:http://www.cnblogs.com/softidea/p/3724227.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值