包含韩文的sql在php里提交,insert into tclass_0 (ID,UserName,GameCode,ClassId,FormId,RECORDNAME,wq012,wq009,wq013,wq015,wq018,wq016,wq017,wq002,PicPath,wq005,wq001,wq024,HtmlFile,wq020,wq014,wq011,wq019) values (SEQ_CLASS_0_ID.nexval,'LC0160','20011',0,162,'暗夜图腾','3.40 Kg','图腾','35','2008-5-21 20:48:17','','','','10','http://dnf.zanba.com/ico/item/111849.gif','装备绑定','圣职者','暗属性攻击命中率+1%攻击力2%확률로180의추가데미지攻击敌人时,有2%%的几率附加180点伤害','http://dnf.zanba.com/item/i-897cf98464.html','','','','itemcolor3')显示以下错误;
Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-00972: identifier is too long in D:\www\include\Oradb.php on line 79
如果把sql放在pl/sql中运行,韩文都变成??? ,运行提示:ORA-00984: column not allowed here apache和php的编码都已设置成 utf8高手请赐教,不胜感激

解决方案 »

  1.   

    韩文应该是因为存储的变量不够大改成TEXT
      

  2.   

    首先看看你Oracle编码设置
    SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET'如果不是UTF8就得设置一下。SQLPlus不显示韩文,那又是他的设定问题,可以先不考虑。
    关于ORA-00972:
    insert语句可能存在于法问题
      

  3.   


    VALUE
    --------
    AL32UTF8把sql里的韩文去掉后,在php里可以提交保存到oracle,据此判断还是出在韩文的编码上
      

  4.   

    连接Oracle的定义中添加charset参数oci_pconnect  ( string $username  , string $password  [, string $db  [, string $charset  [, int $session_mode  ]]] )
      

  5.   

    Oracle9.2以上版本,用php连接数据库的时候可以设定编码,看看能行不。
    http://jp.php.net/manual/en/function.oci-pconnect.php