Home » RDBMS Server » Server Administration » insert/update LONG data >2000 characters
insert/update LONG data >2000 characters [message #371728] Wed, 29 November 2000 20:43
August Detlefsen
Messages: 1
Registered: November 2000
Junior Member
Is there any way to insert/update more than 2000 characters at a time into a LONG column without getting the 'String literal too long' error?

I've already tried Giovanni Jaramillo's procedure posted to this board and it worked, but when I tried to modify it to take input params it broke again. My application is a web-based content management tool and I can't regenerate the procedure for evey single update.

Giovanni's code:

CREATE OR REPLACE PROCEDURE Insert_long AS

v_SQLCODE PLS_INTEGER;
v_SQLERRM VARCHAR2(512);

v_ID PLS_INTEGER DEFAULT 29;

-- The maxsize for a VARCHAR2 is 32767
-- which ironically is bigger than PL/SQL
-- variable of type long

v_description VARCHAR2(32767) := 'Cum
quod in Gallia a potentioribus atque iis qui ad conducendos homines facultates habebant vulgo regna occupabantur
qui minus facile eam rem imperio nostro consequi poterant His nuntiis litterisque commotus Caesar duas legiones
in citeriore Gallia novas conscripsit et inita aestate in ulteriorem Galliam qui deduceret Q Pedium legatum misit
Ipse cum primum pabuli copia esse inciperet ad exercitum venit Dat negotium Senonibus reliquisque Gallis qui
finitimi Belgis erant uti ea quae apud eos gerantur cognoscant seque de his rebus certiorem faciant Hi constanter
omnes nuntiaverunt manus cogi exercitum in unum locum conduci Tum vero dubitandum non existimavit quin ad eos
proficisceretur Re frumentaria provisa castra movet diebusque circiter XV ad fines Belgarum pervenit Eo cum de
improviso celeriusque omnium opinione venisset Remi qui proximi Galliae ex Belgis sunt ad eum legatos Iccium et
antiquitus traductos propter loci fertilitatem ibi consedisse Gallosque qui ea loca incolerent expulisse solosque';

BEGIN

INSERT INTO cr_description
VALUES (v_ID, v_description);

COMMIT WORK;

EXCEPTION

WHEN OTHERS THEN

v_SQLCODE := SQLCODE;
v_SQLERRM := SQLERRM(v_SQLCODE);

DBMS_OUTPUT.PUT_LINE('OTHER ERROR');
DBMS_OUTPUT.PUT_LINE(v_SQLERRM);

END Insert_long;

I know someone, somewhere has the answer (What use would a LONG datatype be if you could never get anything into it?). Please share it with us. TIA,
August
Previous Topic: LONG to CLOB datatype conversion?
Next Topic: How to insert a CLOB with Database Link to a remote database in Trigger?
Goto Forum:
  


Current Time: Fri May 03 05:38:03 CDT 2024