Bosser avec un CLOB Oralce ? [C#] - C#/.NET managed - Programmation
Marsh Posté le 13-03-2006 à 14:51:58
Après avoir vu ce lien :
http://forums.oracle.com/forums/th [...] &tstart=90
Retour à la case départ :
Code :
|
(écrit différement de ce que j'avais mis au début, mais bon)
Erreur :
Code :
|
Moi je veux bien, mais j'ai pas de jeu de caractère spécifié, et je vois pas comment en spécifier un
On va se la retenter en BLOB, du binaire, il devrait plus m'emmerder avec un jeu de caractère
Marsh Posté le 13-03-2006 à 14:59:20
Je vais l'éclater ce truc
Même avec un Blob il m'emmerde avec le jeu de caractères
Code :
|
Erreur :
|
Marsh Posté le 13-03-2006 à 20:19:59
je devrais bosser la dessus la semaine prochaine, si d'ici la tu n'as pas de solution, je te dirais comment je l'aurais fait car je sais qu'ils l'ont déjà fait chez moi au boulot...
Marsh Posté le 14-03-2006 à 09:05:57
J'espère bien avoir trouvé d'ici là
Par contre si tu peux piquer les sources de tes collègues, ça m'aiderait bien
Marsh Posté le 14-03-2006 à 09:29:29
oh putain je vais le bousiller ce connard d'Oracle
en fait, c'est pas sur le CLOB que ça merdait... ze soucy of "game of characters" venait du type "DbType.String" au lieu de "DbType.AnsiString" pour mettre dans un VARCHAR2 (pour les autres champs)
Quand ça veut pas, ça veut pas.
M'enfin bon maintenant ça marche
Marsh Posté le 14-03-2006 à 09:33:52
So, the syntaxe qui marche :
Côté de la base :
|
(bien noter ces putains de "VARCHAR2" qui ont remplacés automatiquement les "VARCHAR" que j'avais mis, qui sont compatible "DbType.String", eux )
Côté C# :
Code :
|
Reste plus qu'à faire le UPDATE quoi
En tout cas, le Insert marche bien
(sauf que "newtit" s'est pas enregistré, faut que je voie pkoi )
Marsh Posté le 14-03-2006 à 17:28:39
http://www.oracle.com/technology/t [...] index.html
c'est un module que tu installes ds vs2003 pour avoir un explorateur de serveur comme SqlServeur, avec les fonctions de drag & drop de table / proc stock qui vont bien pour génerer ta DAL plus facilement
sinon le driver ODP d'oracle est d'apres ce que j'ai pu lire (et on l'utilise) meilleur en terme de perf que celui de M$
http://morpheus.developpez.com/oracledotnet/
Marsh Posté le 14-03-2006 à 19:47:59
ReplyMarsh Posté le 15-03-2006 à 09:24:02
Arjuna a écrit : ben moi j'utilise le drivers fourni avec Oracle 10gR2 |
c le meme
par contre le module d'exploration de serveur est pas mal (je n'ai pas d'actions chez Oracle )
Marsh Posté le 15-03-2006 à 15:51:04
chais pas, moi j'utilise Toad dont General Electric a payé une licence à mon patron sur mon PC perso alors que je bosse chez un autre client (c'est clair ?)
en tout cas, toad dernière version c'est d'la balle (juste un peu moins bien que Microsoft Entreprise Manager
)
Marsh Posté le 29-03-2006 à 00:11:23
s'il vous plait est ce que quelqunpeut m'aider:Urgent: comment se connecter à une base de donnée oracle via C#
Marsh Posté le 13-03-2006 à 14:36:44
Salut,
J'ai une table Oracle avec notamment un CLOB dedans.
Actuellement, je veux écrire dedans une valeur.
"insert into matable (id, monclob) values (:id, :monclob)"
dans un objet oraclecommand, avec deux paramètres.
sauf que j'arrive pas à faire marcher le "clob". si je basarde une string dedans, ça marche pas. en bidouillant à partir d'exemples qui marchent pas du tout pareil (et je ne veux pas faire la bidouille à deux balles qui consiste à faire un "select for update" ) je suis arrivé à ça :
Sauf que ça plante à l'execution, en me disant que l'objet n'est pas instancié (val = null) sur le "val.Write()"
Erreur du serveur dans l'application '/bci'.
La référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
Erreur source:
Ligne 1387 : OracleLob val = (OracleLob)param5.Value;
Ligne 1388 : byte[] valB = System.Text.Encoding.UTF8.GetBytes(newtxt);
Ligne 1389 : val.Write(valB, 0, valB.Length);
Ligne 1390 : param5.Value = val;
Ligne 1391 : cmd.Parameters.Add(param5);
Fichier source : c:\inetpub\wwwroot\bci\queries.cs Ligne : 1389
Trace de la pile:
[NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.]
bci.Queries.CreateNews(Object newnum, Decimal codsoc, String typtie, String sigtie, String newtit, String newtxt, String newfic, String datdeb, String datfin, String typdes) in c:\inetpub\wwwroot\bci\queries.cs:1389
bci.WriteNews.btnSave_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\bci\writenews.aspx.cs:118
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1292
Informations sur la version : Version Microsoft .NET Framework :1.1.4322.2300; Version ASP.NET :1.1.4322.2300
QQ1 sait comment faire ?