Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1533 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ASP-ORACLE "string literal too long"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ASP-ORACLE "string literal too long"

n°591316
xc0r
Posté le 15-12-2003 à 18:50:23  profilanswer
 

Bonjour a tous,
 
mouarf j'ai une question con histoire de changer un peu mais bon ...
 
donc voila dans ma table oracle j'ai un LONG malheureusement il semblerait que l'on ne puisse pas inserer des chaines de caracteres supérieurs a 4000 caracteres avec Oracle8
J'ai essaye avec un CLOB au lieu d'un long mais pareil .... "string literal too long"
 
en editant la colonne en passant par le "schema browser" de TOAD, j'arrive a depasser cette limite !
mais des que je fais un UPDATE (que ce soit par toad ou en asp) ca merde
 
C'est de l'asp 3 et je me connecte de la maniere suivante :
 
Set ConnexionOracle = Server.CreateObject("ADODB.Connection" )
 ConnexionOracle.Open "Provider=MSDAORA;Data Source=" & DB_DATA_SOURCE & ";User ID=" & DB_USER_ID & ";password=" & DB_PASSWORD
 
et je fais un update avec ma chaine tres longue en faisant un
ConnexionOracle.execute("update etc etc values ('chaine de plus de 4000 caracteres')" )
 
 
a ce que j'ai pu comprendre on doit passer le LONG en CLOB mais ca ne change rien :(
j'ai egalement vu un "bind" mais je ne comprend pas comment ca marche ?
Est ce qu'il est possible de concatener a la suite d'un fichier ? comme ca j'ai qu'a decouper mon texte en nx3000 que je concatene ....
seulement j'ai pas trouvé comment concatner avec UPDATE donc, la aussi je suis dans l'impasse et c'etait pourtant la seule facons que je voyais encore imaginable ....
 
s'il vous plait aidez moiiiiiiiiii !!!! :)
 
en tout cas, un enorme merci a celui qui pourra me depanner :p
 
Xc0r

mood
Publicité
Posté le 15-12-2003 à 18:50:23  profilanswer
 

n°591396
xc0r
Posté le 15-12-2003 à 22:19:12  profilanswer
 

snif :(
 
allez :bounce: on sait jamais :p

n°591565
thecoin
Chasseur de chasseur de canard
Posté le 16-12-2003 à 09:03:57  profilanswer
 

Pourquoi ne pas utilisé un VARCHAR2 (max 16238 caratère) au lien d'un LONG? De plus l'utilisation du LONG est devenue totalement obsolète avec les BLOB et les CLOB

n°591656
xc0r
Posté le 16-12-2003 à 11:49:07  profilanswer
 

ben je veux bien moi mettre un varchar2 ou meme un CLOB mais ca me fait exactement pareil ...
et j'arrive pas a creer un varchar2 de plus de 4000 caracteres non plus
 
personne n'a jamais inserer plus de 4000 caracteres sous un sgbd ou je suis vraiment si si mauvais que ca ? :) bon ok ok je suis mauvais mais bon je suis bloqué la :(

n°591696
thecoin
Chasseur de chasseur de canard
Posté le 16-12-2003 à 12:22:21  profilanswer
 

Voilà pour toi:
 
http://support.microsoft.com/defau [...] bContent=1
 
En tout cas t'as pas de bolle :D


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
n°591721
xc0r
Posté le 16-12-2003 à 12:52:15  profilanswer
 

oui j'avais lu cette bc mais ....  
ca veut pas dire que je peux pas le faire non ?
c'est pas possible que ce ne soit pas possible ?
je ne pense pas qu'il n'y ait aucune bdd oracle dans le monde avec un champ sup a 4000 caracteres ?
 
je vais me petit suicider sinon snif

n°591974
thecoin
Chasseur de chasseur de canard
Posté le 16-12-2003 à 16:21:25  profilanswer
 

Je viens de faire un test, 4000 caractères dans un VARCHAR2(4000) sa rentre.


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
n°592030
xc0r
Posté le 16-12-2003 à 17:35:57  profilanswer
 

merci beaucoup thecoin d'avoir consacré du tps a mon pb!
bon je pense etre sur le point de le resoudre en fait :
j'ai donc mis un CLOB a la place du LONG et je fais un append ... (je savais mm pas que c'etait faisable, en fait je viens de decouvrir OO4O!)
 
donc pour ceux que ca interesse, je met une copie du code :
 

Code :
  1. <%
  2.   Dim varOraSession
  3.   Dim varOraDatabase
  4.   Dim varOraDynaset
  5.   Dim varSQL
  6.   dim strSQL
  7.   dim intMaxlength
  8.   dim strContent
  9.   strContent = "012345678901234567890123456789012"
  10.   Set varOraSession = Server.CreateObject("OracleInProcServer.XOraSession" )
  11.   Set varOraDatabase = varOraSession.OpenDatabase("MABASECOM", _
  12.                                                   "scott/tiger", 0)
  13. varOraSession.beginTrans
  14.   Response.Write "OO4O Version:" & varOraSession.OIPVersionNumber & "<BR>" &_
  15.                  "Connect: " & varOraDatabase.connect & "<BR>" & _
  16.                  "DatabaseName: " & varOraDatabase.DatabaseName & "<BR>" & _
  17.                  "Oracle Version: " & varOraDatabase.RDBMSVersion & "<P>"
  18. if len(strContent) > 4000 then
  19. strSQL="UPDATE DEPT " & _
  20.            "SET CONT='" & left(strContent, 3999) & "' where DEPTNO='10'"
  21. else
  22. strSQL="UPDATE DEPT " & _
  23.            "SET CONT='" & left(strContent, 3999) & "' where DEPTNO='10'"
  24. end if
  25. varOraDatabase.executeSQL(strSQL)
  26. ' on concatene a la suite
  27. dim rsAppend
  28. dim intCount
  29. dim intStartChunk
  30. intMaxLength=int(len(strContent)\4000)
  31. strSQL="SELECT CONT FROM DEPT WHERE DEPTNO='10'"
  32. set rsAppend=varOraDatabase.CreateDynaset(strSQL, 0)
  33. rsAppend.edit
  34. for intCount=1 to intMaxLength
  35.         intStartChunk=4000*intCount
  36.         rsAppend.fields("CONT" ).appendChunk(mid(strContent, intStartChunk, 4000))
  37.     next
  38.     rsAppend.update
  39.     rsAppend.close
  40.     set rsAppend=nothing
  41. varOraSession.CommitTrans
  42. Set varOraDatabase = Nothing
  43. Set varOraDynaset = Nothing
  44. Set varOraSession = Nothing
  45. %>


 
apparement il est possible de faire ca avec un BIND aussi (que je viens de decouvrir aussi lol) et ca a l'air pas mal faudrait que je me penche sur le pb, mais la j'ai pris trop de retard!
 
Merci bcp en tout cas :)

n°592729
MagicBuzz
Posté le 17-12-2003 à 18:55:43  profilanswer
 

Il faut passer par une connection OLE.
 
Ou inserrer des blocs de 4000 caractères, en faisant :
 
update table set champ = champ + 'blablabla'


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  ASP-ORACLE "string literal too long"

 

Sujets relatifs
[Oracle] SQL+ Impossible de scroller a droiteInsérer du texte dans BD oracle
Taille maxi des noms de vues (et tables ?) sous Oracle 9i (et < ?)[Oracle]Java Stored procedure
[SGBDR - ASP] Cryptage de données avec ASP?Recherche de doublon ORACLE?
applet et oracleASP Excel Liaison ouverture
[ASP] fileexists problemeOptimisation Oracle 9i
Plus de sujets relatifs à : ASP-ORACLE "string literal too long"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR