oracle中的&变量和'&变量'

今天碰到个&变量赋值的问题。

declare

 uid number(10);

begin

uid:=&x;

end;

当&x输入为空时报如下错

ORA-06550: 第 5 行, 第 9 列:

PLS-00103: Encountered the symbol ";" when expecting one of the following:

( - + case mod new not null <an identifier>

<a double-quoted delimited-identifier> <a bind variable>

continue avg count current exists max min prior sql stddev

sum variance execute forall merge time timestamp interval

date <a string literal with character set specification>

<a number> <a single-quoted SQL string> pipe

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

<一个带有字符集说明的可带引号的字符串文字>

<一个可带引号的 SQL

当&x输入为字符时报如下错

ORA-06550: 第 6 行, 第 25 列:

PLS-00306: wrong number or types of arguments in call to 'V'

ORA-06550: 第 6 行, 第 4 列:

PL/SQL: Statement ignored

而当将&x改为'&x'时,

uid:='&x';

无论输入空还是字符都可以正常赋值。

所以实验证明&变量要求输入为数值,而且不能为空。

加上单引号'&变量'则可以输入任意字符。

另外再记录下如果碰到&字符如何处理

1.如果在查询列里遇到,

select 'B&R/SC' from dual;

可以用chr(38)替换

select 'B'||chr(38)||'R/SC' from dual;

2.如果在where条件里遇到&字符

select * from test where id = 'b&c';

可以现在关闭&符号的功能

set define off;

然后再执行查询语句。

本文出自 “richard的笔记-积微成著” 博客,请务必保留此出处http://zxf261.blog.51cto.com/701797/722326

时间: 2024-10-31 13:44:00

oracle中的&amp;变量和'&amp;变量'的相关文章

Oracle中如何绑定变量

oracle 中,对于一个提交的sql语句,存在两种可选的解析过程, 一种叫做硬解析,一种叫做软解析. 一个硬解析需要经解析,制定执行路径,优化访问计划等许多的步骤.硬解释不仅仅耗费大量的cpu,更重要的是会占据重要的们闩(latch)资源,严重的影响系统的规模的扩大(即限制了系统的并发行), 而且引起的问题不能通过增加内存条和cpu的数量来解决. 之所以这样是因为门闩是为了顺序访问以及修改一些内存区域而设置的,这些内存区域是不能被同时修改.当一个sql语句提交后,oracle会首先检查一下共享

SQL*Plus中替换变量与定义变量

替换变量 SQL*Plus中的替换变量又叫替代变量,它一般用来临时存储相关数据:在SQL语句之间传递值.一般使用&或&&前缀来指定替换变量. 关于使用替换变量,一般是利用其创建通用的脚本或达到和用户交换目的.如下所示: 例如,我需要查看表的相关信息,如果不使用替换变量,每次查询我都要修改脚本.非常不便,如果使用替换变量,我们可以将下面脚本存放在tab.sql脚本中,每次运行时,只需要输入替换变量的值就可以了. COL LOGGING FOR A7;   COL OWNER FOR

php中两个网页之间的变量传送

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  在网站设计中,我们常常用到用户登陆这一方法,在登陆后,一般的网站都会根据不同的用户来给定不同的页面,在链接到该站的一个新的网页或者打开一张新网页时,我们也会看到用户的信息能够被记住,现在尤其常用的是,登陆后链接或打开该站的其它网页都会看到诸如"XXX,晚上好"之类的问候语,这些当然都是在登陆后变量传送

java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么

问题描述 java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么 java中不能修饰方法不能修饰变量不能修饰类的关键词分别是什么 实现现多个接口的类是不是必须重写其所有方法, 解决方案 首先,第一个问题,了解哪些关键词能修饰方法.变量.类比较容易些. 修饰方法的关键字:public/private/protected/default ,static, 修饰变量了:final ,static:修饰类的:public/private/protected/default,static 其次,实

【转】Shell中脚本变量和函数变量的作用域

 在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的变量和函数的变量的作用域问题可能令你费解,在这里梳理一下这个问题. (1)Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 例1:脚本变量的作用域#!/bin/bash#define the function ltx_funcltx_func(){   echo $v1   #modify the variable v1   v1=200 }#define the

myeclipse中的自动提示问题!每次变量名后面都追加字符!

问题描述 myeclipse中的自动提示问题!每次变量名后面都追加字符! 设置了MyEclipse中的自动提示后,每次我定义String类型的变量,变量后面都追加String, 比如我定义了一个String name,追加过后就是nameString,每次都要手动删掉,烦死人了,请问有什么方法解决这一个自动提示追加变量名的问题!! 解决方案 关闭提示吧,用的多了会产生惯性,自己就不知道怎么写代码了. 解决方案二: 我也遇到这个问题,很郁闷不懂咋解决!!希望有大神可以说一块,我用的环境是,myEc

oracle SCN怎么取出来存在一个变量里面?

问题描述 oracle SCN怎么取出来存在一个变量里面? 如题,我想在一个表里记录SCN号,如何把它放在一个变量里? declare SCNNUM NUMBER; begin select dbms_flashback.get_system_change_number into SCNNUM from dual ; [Error] ORA-00904 (12: 8): PL/SQL: ORA-00904: : invalid identifier WHY?

使用js向页面中插入html,代码定义在变量中,但是执行的时候提示变量未定义,变量都打印的出来。

问题描述 使用js向页面中插入html,代码定义在变量中,但是执行的时候提示变量未定义,变量都打印的出来. var test=text.html;这个text.html是json格式的获得json中的html值 alert(test); $('#login').html(test); 这个图片是我的代码,下面这个js是远程返回一个调用js函数,内容是ajaxload({"html":"xxx"});xxx就是我上面截图打印出来的 解决方案 你应该是执行到else语句

link中如何释放堆栈上的变量?如何提高堆栈运算的效率?

问题描述 link中如何释放堆栈上的变量?如何提高堆栈运算的效率? link中如何释放堆栈上的变量?如何提高堆栈运算的效率? 解决方案 自动释放,不用关心.你要能优化堆栈效率,你可以去微软了.

mfc-MFC单选按钮,一组中未什么只能绑定一个变量,其它控件该怎么操作?

问题描述 MFC单选按钮,一组中未什么只能绑定一个变量,其它控件该怎么操作? 我用的VS2013,单选按钮中,一组按钮只能给Group开头的那个单选控钮定义变量,其它的怎么定义变量? 解决方案 绑定变量后,获取变量值,相减,得到按钮的的索引值.