Oracle得到的错误就像ORA-01704:字符串文字太长了

时间:2017-08-23 03:22:33

标签: sql oracle

我尝试在表中插入值但是我总是得到像ORA-01704这样的错误:字符串文字太长了

我的表结构如下

uuid2

和我的插入脚本如下

${__UUID()}

请帮助我解决此问题。非常感谢

1 个答案:

答案 0 :(得分:1)

下面的代码工作(通过使用绑定变量"实际上应该总是使用以避免硬解析"):

declare
  v_blob      blob;
  v_id        PKI_CERT_DETAILS.id%type; 
  v_customer  PKI_CERT_DETAILS.customer_id%type; 
  v_type      PKI_CERT_DETAILS.type%type;
  v_alias     PKI_CERT_DETAILS.alias%type;
  v_pass      PKI_CERT_DETAILS.pass%type;

  FUNCTION c2b( c IN CLOB ) RETURN BLOB
  -- typecasts CLOB to BLOB (binary conversion)
  IS
  pos PLS_INTEGER := 1;
  buffer RAW( 32767 );
  res BLOB;
  lob_len PLS_INTEGER := DBMS_LOB.getLength( c );
  BEGIN
  DBMS_LOB.createTemporary( res, TRUE );
  DBMS_LOB.OPEN( res, DBMS_LOB.LOB_ReadWrite );

  LOOP
  buffer := UTL_RAW.cast_to_raw( DBMS_LOB.SUBSTR( c, 16000, pos ) );

  IF UTL_RAW.LENGTH( buffer ) > 0 THEN
  DBMS_LOB.writeAppend( res, UTL_RAW.LENGTH( buffer ), buffer );
  END IF;

  pos := pos + 16000;
  EXIT WHEN pos > lob_len;
  END LOOP;

  RETURN res;
  END c2b;  
begin
  v_blob := c2b('2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D4949435844434341662B674177494241674942426A414D42676771686B6A4F50515144416755414D4838784C7A417442674E5642414D544A6C5974533256350A4946526C63335167535735305A584A745A5752705958526C49454E4249454E6C636E52705A6D6C6A5958526C4D525977464159445651514B457731574C55746C0A65534251644755675448526B4D513077437759445651514C457752574C5539544D517377435159445651514845774A54527A454C4D416B474131554543424D430A55306378437A414A42674E5642415954416C4E484D423458445445334D4451774D6A41314D7A67774D566F5844544D794D4445774D5441774D4441774D466F770A675949784D6A417742674E5642414D544B565974533256354946526C633351675532566C5A476C755A79424A63334E316157356E49454E4249454E6C636E52700A5A6D6C6A5958526C4D525977464159445651514B457731574C55746C65534251644755675448526B4D513077437759445651514C457752574C5539544D5173770A435159445651514845774A54527A454C4D416B474131554543424D4355306378437A414A42674E5642415954416C4E484D466B77457759484B6F5A497A6A30430A415159494B6F5A497A6A30444151634451674145523335545057534952695136733059574278534C334874634C636C77304B342B634D753859724149786644480A734D6A5772313378682F6B61596252416B2B37655A473570564D36474F61532B704751382F5968684B614E6D4D47517745675944565230544151482F424167770A426745422F7749424144414F42674E56485138424166384542414D4341595977487759445652306A42426777466F4155797832766D7859796E5045674473326F0A584E414A65575741594E7777485159445652304F424259454642696D717330786D4336415072694E4E564B6252486B49796954374D41774743437147534D34390A42414D43425141445351417752674968414D686554306442673748754A4855515A6A5A714C3249557965376641466474694958783659586F66364272416945410A38704E686665592F74346737626C5A4B49306F6C614B4C33693742302F436657633154786B57637A6F68493D0A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D4949435544434341664F6741774942416749424244414D42676771686B6A4F50515144416755414D4863784A7A416C42674E5642414D54486C5974533256350A4946526C63335167556D397664434244515342445A584A3061575A70593246305A5445574D4251474131554543684D4E5669314C5A586B675548526C494578300A5A44454E4D4173474131554543784D4556693150557A454C4D416B474131554542784D4355306378437A414A42674E5642416754416C4E484D517377435159440A5651514745774A54527A4165467730784E7A41304D4449774E5441334D7A68614677307A4E5441784D4445774D4441774D4442614D4838784C7A417442674E560A42414D544A6C5974533256354946526C63335167535735305A584A745A5752705958526C49454E4249454E6C636E52705A6D6C6A5958526C4D525977464159440A5651514B457731574C55746C65534251644755675448526B4D513077437759445651514C457752574C5539544D517377435159445651514845774A54527A454C0A4D416B474131554543424D4355306378437A414A42674E5642415954416C4E484D466B77457759484B6F5A497A6A3043415159494B6F5A497A6A3044415163440A5167414569386E762F7064524238517064546A79766F4742436F41496E3370556D4E3544447A6D586D6B6A623153476E4A7277345533794C2B4272684C4543330A502F76666B5A364170306A32333866415233754E566C49527A4B4E6D4D47517745675944565230544151482F42416777426745422F7749424154414F42674E560A485138424166384542414D4341595977487759445652306A42426777466F41553656306B6278417571485258433955596465644A7155554A566C4177485159440A5652304F42425945464D7364723573574D707A784941374E71467A5143586C6C674744634D41774743437147534D343942414D434251414453514177526749680A41505252626D5056685468357376502F4C492F6B6D6A4C57346C527755747778714B7A5070767A337A63393241694541726A614E5732392F61696D54567A6B4B0A47676D7675684A43494E42464F496E53355344556C3646375A45673D0A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A2D2D2D2D2D424547494E2043455254494649434154452D2D2D2D2D0A4D49494353444343416575674177494241674942416A414D42676771686B6A4F50515144416755414D4863784A7A416C42674E5642414D54486C5974533256350A4946526C63335167556D397664434244515342445A584A3061575A70593246305A5445574D4251474131554543684D4E5669314C5A586B675548526C494578300A5A44454E4D4173474131554543784D4556693150557A454C4D416B474131554542784D4355306378437A414A42674E5642416754416C4E484D517377435159440A5651514745774A54527A4165467730784E7A41304D4449774E5441324D6A46614677307A4E7A41784D4445774D4441774D4442614D4863784A7A416C42674E560A42414D54486C5974533256354946526C63335167556D397664434244515342445A584A3061575A70593246305A5445574D4251474131554543684D4E5669314C0A5A586B675548526C494578305A44454E4D4173474131554543784D4556693150557A454C4D416B474131554542784D4355306378437A414A42674E56424167540A416C4E484D517377435159445651514745774A54527A425A4D424D4742797147534D34394167454743437147534D34394177454841304941424D4179396845310A662B435045526457684D6F4F51534F7433716264546D4166374B762F6C706F544B657633366A34796C426D7A375A45345839394B7253613770476F6E334743620A54565A746A4543674854537A75776D6A5A6A426B4D42494741315564457745422F7751494D415942416638434151497744675944565230504151482F424151440A416747474D42384741315564497751594D426141464F6C644A4738514C716830567776564748586E53616C4643565A514D4230474131556444675157424254700A585352764543366F6446634C3152683135306D7052516C575544414D42676771686B6A4F505151444167554141306B414D455943495144426B47484169516A520A4C763361634A745A636561347A75682B62372B527A7149725275396A4C7578704A674968414E7A3155554A483433657A575579637A31333939584153473849450A6D326C30392F655379766562576B6D330A2D2D2D2D2D454E442043455254494649434154452D2D2D2D2D0A');
  v_id   := 41; v_customer := '78'; v_type := 'PREGEN';
  execute immediate 'INSERT INTO PKI_CERT_DETAILS (ID, CERTIFICATE, TYPE, ALIAS, PASS, CUSTOMER_ID) VALUES (:p_id,:p_blob,:p_type,:p_alias,:p_pass,:p_customer)' using v_id, v_blob, v_type, v_alias, v_pass, v_customer;
end;