SQL> create table test(
2 test1 varchar2(10),
3 test2 varchar2(10));Table created.SQL> insert into test(test1,test2) values('''hello''','"hello"');1 row created.SQL> select * from test;TEST1 TEST2
---------- ----------
'hello' "hello"
2 test1 varchar2(10),
3 test2 varchar2(10));Table created.SQL> insert into test(test1,test2) values('''hello''','"hello"');1 row created.SQL> select * from test;TEST1 TEST2
---------- ----------
'hello' "hello"
解决方案 »
- 请问如何从其中一张表里只返回一个特定的记录?
- 如何在一个jsp网页中实现SQL数据库查询和显示结果
- rac与单机的dataguard上switch over,出现问题
- 高级 rman 备份问题求助
- 各位大虾!!!如何阻止普通用户以SYSDBA连接身份登陆Enterprise Manager?
- imp错误,指定的多个文件为无界导出文件!!!!急!!!!!!!
- 为什么Oracle的客户端不能连接服务器端阿
- 请大家帮忙推荐
- 做个有意思的小测试,rman恢复时报错,麻烦各位朋友看看是什么错
- 求 大佬 帮忙
- 请问hxh是PL/SQL的关键字吗?
- 能不能对一个表delete的触发器(行级)中,更新此表的其他行的值?
insert into table values('','','')...如果你是动态构造SQL, 有双引号不会出错,但是有单引号在字符串中会报错。解决方法:1。不使用动态构造SQL的方法,而是采用变量绑定的方式。2。事先将单引号替换为全角的单引号,这个方法不太好,等于改变了字符串的内容。
insert into a values(1,'dkdkdkdk');dkdkdk那段不能大于4000,否则会报ORA-01704: string literal too long错,是吗?
第一就是象一楼的写法。直接在values 写 '''hello''','"hello"'
分别是加单引和双引。
或者可以 ''||'1111'||'' 和 ''||'"1111"'||''
前者可以说是简便的写法
后者是共通的写法。比较容易理解。
所以把所有出现的一个单引号替换成两个单引号等。