insert into testtbl(building) value('32'#楼'); 我执行这句居然报错
我在ORACLE 817中也未出错。如果楼主还是不行的话, 就用全角的#好了(半角的是这样子#)
SQL> create table tbl(building varchar2(10));表已创建。SQL> insert into tbl (building)values('32#楼');已创建 1 行。SQL> insert into tbl (building)values('32'#楼'); ERROR: ORA-01756: 括号内的字符串没有正确结束
insert into testtbl(building) value('32#'||chr(49829));好象是‘楼’这个汉字编码的问题。
我也可以啊insert into tbl (building)values('32#楼');
我也可以通过,真不行就这样吧 insert into testtbl(building) value('32#'||chr(49829));
escape在通配符需要当作一般字符时才需要进行转义的, select * from test where name like '%%' 查找以%开名的人,这样肯定找不到select * from test where name like '\%%' escape \ 在sql*plus中使用转义符'\',要首先修改环境变量 set escape on 随后就可以使用转义符'\'了,例如 SQL>set escape on SQL>select count(*) from employees where name='\[$1'] COUNT(*) ---------- 0 SQL>select count(*) from employees where name='&1';
输入 1 的值: a
原值 1: select count(*) from employees where name='&1' 新值 1: select count(*) from employees where name='a'
我执行这句居然报错
就用全角的#好了(半角的是这样子#)
ERROR:
ORA-01756: 括号内的字符串没有正确结束
insert into testtbl(building) value('32#'||chr(49829));
select * from test where name like '%%'
查找以%开名的人,这样肯定找不到select * from test where name like '\%%' escape \
在sql*plus中使用转义符'\',要首先修改环境变量
set escape on
随后就可以使用转义符'\'了,例如
SQL>set escape on
SQL>select count(*) from employees where name='\[$1']
COUNT(*)
----------
0
SQL>select count(*) from employees where name='&1';
输入 1 的值: a
原值 1: select count(*) from employees where name='&1'
新值 1: select count(*) from employees where name='a'
COUNT(*)
---------
0
系统oracle 9.0.2 web_logic 813
问题出现经过,我写了一个SQL文件,sql plus下向表加入记录,发现遇到#就识别为用户定义变量,需要手工输入变量值。
后来问题在jsp语句里面同样上演:sql语句的insert插入语句字段值含有#,#后面的都没加入进去,但是update可以生效.JDBC的问题还是oracle本身的问题?