12
返回列表 发新帖
楼主: marvinzzy

[原创] Update出错了,高手达人请进

[复制链接]
论坛徽章:
1
会员2006贡献徽章
日期:2006-04-17 13:46:34
11#
 楼主| 发表于 2005-2-17 20:31 | 只看该作者
谢谢各位的帮忙,该问题我已经搞定了,就是在‘D’前面加一个N就可以通过了。非常感谢myhuaer,我有一个好哥们也在苏州。

使用道具 举报

回复
论坛徽章:
9
授权会员
日期:2006-02-10 14:50:312008新春纪念徽章
日期:2008-02-13 12:43:032009日食纪念
日期:2009-07-22 09:30:002010新春纪念徽章
日期:2010-03-01 11:08:24ITPUB9周年纪念徽章
日期:2010-10-08 09:28:512011新春纪念徽章
日期:2011-02-18 11:43:332014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:11秀才
日期:2017-02-22 15:18:00
12#
发表于 2005-2-17 21:35 | 只看该作者
看了一下,你和我是老乡.我是宝鸡的

使用道具 举报

回复
论坛徽章:
8
授权会员
日期:2005-10-30 17:05:33会员2006贡献徽章
日期:2006-04-17 13:46:34会员2007贡献徽章
日期:2007-09-26 18:42:102011新春纪念徽章
日期:2011-02-18 11:42:49ITPUB 11周年纪念徽章
日期:2012-10-09 18:03:32兰博基尼
日期:2014-01-31 14:56:26优秀写手
日期:2015-01-08 06:00:14优秀写手
日期:2015-02-12 06:00:15
13#
发表于 2005-2-18 09:19 | 只看该作者

我怎么模拟不出来

create table test (id number(2), state nchar(1));

insert into test values(1,'T');

update test set state ='U' where id =1;

可以运行成功,我的环境是9i + linux

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2005-2-18 09:38 | 只看该作者
这种情况好像9i里面就修复了吧。

使用道具 举报

回复
论坛徽章:
12
ITPUB元老
日期:2006-05-09 18:02:122010年世界杯参赛球队:乌拉圭
日期:2010-05-20 16:38:272010新春纪念徽章
日期:2010-03-01 11:04:59生肖徽章2007版:虎
日期:2009-07-14 17:18:382009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:羽毛球
日期:2008-09-15 16:00:28生肖徽章2007版:兔
日期:2008-05-06 11:06:432008新春纪念徽章
日期:2008-02-13 12:43:03会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:07
15#
发表于 2005-2-18 09:43 | 只看该作者

Re: 我怎么模拟不出来

最初由 西门吹牛 发布
[B]create table test (id number(2), state nchar(1));

insert into test values(1,'T');

update test set state ='U' where id =1;

可以运行成功,我的环境是9i + linux [/B]

估计是系统还是版本的问题吧
我的是2K,和8I的
SVRMGR> connect mark/mark
连接成功。
SVRMGR> create table test(id number(2),state nchar(1));
语句已处理。
SVRMGR> insert into test values(1,'T');
insert into test values(1,'T')
*
ORA-12704: 字符集不匹配
SVRMGR> insert into test values(1,N'T');
处理了 1 行。
SVRMGR>

使用道具 举报

回复
论坛徽章:
27
授权会员
日期:2005-10-30 17:05:33管理团队成员
日期:2011-05-07 01:45:082012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36优秀写手
日期:2013-12-18 09:29:13马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14
16#
发表于 2005-2-18 09:54 | 只看该作者
我在HP-UX 11i+oracle 8i上试了一下同样的情况,去metalink查了下发现是有解释的

摘录如下:
Solution Description:  =====================    Prefix the input string with an 'N'.    Example: --------       SQL> INSERT INTO test VALUES (N'ABC');     Solution Explanation:  =====================   This is not a restriction but a simple type matching requirement. This is  documented in the SQL Reference manual: NVARCHAR2 is not the same type as VARCHAR2, and there is no implicit conversion between them. A 'string'  literal is of type VARCHAR2, and an N'string' literal is of type NVARCHAR2.  You can convert explicitly between VARCHAR2 and NVARCHAR2 using  TRANSLATE( x USING NCHAR_CS ) or TRANSLATE( x USING CHAR_CS ).     Solution References:  ====================   Oracle8 SQL Reference, Chapter 2 "Elements of Oracle8 SQL"

使用道具 举报

回复
论坛徽章:
0
17#
发表于 2005-2-18 10:02 | 只看该作者
9i里面就修复了。
在8i里面尽量避免使用N类型。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表