Maison base de données tutoriel mysql Oracle中Clob类型处理解析

Oracle中Clob类型处理解析

Jun 07, 2016 pm 05:45 PM
connection data quot

系统环境 xp+2.0+oracle9i

  表结构(由于是测试,表结构随便建了一张) XX

  字段名

  类型

  ID

  VARCHAR2(70)

  TEST

  CLOB

  测试

  方式1:直接将CLOB的值拼写在SQL语句中。

  代码:

  string id = Guid.NewGuid().ToString();

  OracleCommand cmd = Conn.CreateCommand();

  cmd.CommandText = "insert into xx(id,test) values('" + id + "','" + data + "')";// data是一个变量,存储你要插入的字符串

  cmd.ExecuteNonQuery();

  情况分析:

  当data的长度大于4000时报错(ORA-01704:文字字符串过长),小于或等于4000时正常插入。

  原因分析:

  之所以会出现长度大于4000时报错,是因为Oracle中有SQL语句中两个单引号之间的字符数不能大于4000的限制。'" + data + "' data在sql语句之间,当data的值大于4000个字节时就会报错。

  解决办法:

  这种方式比较棘手,但有更好的方式,下边会讲到 。

  方式2:采用参数形式。

  代码:

  string id = Guid.NewGuid().ToString();

  OracleCommand cmd = Conn.CreateCommand();

  cmd.CommandText = "insert into xx(id,test) values('" + id + "',:p1)";

  OracleParameter p1 = new OracleParameter("p1", OracleType.Clob);

  p1.Value = data; // data是一个变量,存储你要插入的字符串

  cmd.Parameters.Add(p1);

  cmd.ExecuteNonQuery();

  情况分析:

  采用这种方式能够正常插入。所以推荐用这种方式。

  原因分析:

  无

  解决办法:

  无

  方式3:采用参数形式,但是参数类型写为OracleType. NVarChar

  代码:

  string id = Guid.NewGuid().ToString();

  OracleCommand cmd = Conn.CreateCommand();

  cmd.CommandText = "insert into xx(id,test) values('" + id + "',:p1)";

  OracleParameter p1 = new OracleParameter("p1", OracleType. NVarChar);

  p1.Value = data; // data是一个变量,存储你要插入的字符串

  cmd.Parameters.Add(p1);

  cmd.ExecuteNonQuery();

  

   情况分析:

  为什么要写这种方式,因为这种方式和采用NHibernate的方式很相似,先看看在这种方式会产生什么情况。当data的字节数在0-2000之间时正常插入,大于4000时也正常插入,但在2000-4000时则失败,报错(ORA-01461:仅可以插入 LONG列的LONG值赋值)

  原因分析:

  没有采用对应的Oracle类型。

  解决办法:

  采用OracleType.Clob

  下边采用NHibernate插入数据,NHibernate具体怎用不在本次讨论范围。

  NHibernate采用的版本为1.2.1.4000。

  下边大至把简要配置写下。

  App.config

  

  

  

  

  

  

  

  

  

  

  

  value="Data Source=Orcl_192.168.0.232;User ID =icqs_test;Password=icqs_test" />

  

  

  key="hibernate.adonet.batch_size"

  value="100"

  />

  

  

  xx.cs

  using System;

  using System.Collections.Generic;

  using System.Text;

  namespace Test.Enties

  {

  [Serializable]

  public class Xx

  {

  public Xx()

  {

  }

  private string id;

  public virtual string Id

  {

  get { return id; }

  set { id = value; }

  }

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie CONNECTION_REFUSED ? Que signifie CONNECTION_REFUSED ? Jul 31, 2023 pm 02:48 PM

CONNECTION_REFUSED est une erreur de connexion réseau qui se produit généralement lors de la tentative de connexion à un serveur distant. Lorsqu'un appareil client tente d'établir une connexion réseau avec un serveur et que le serveur rejette la demande de connexion, une erreur CONNECTION_REFUSED est renvoyée. Les raisons courantes incluent : le serveur n'est pas démarré, le serveur ne peut pas accepter plus de demandes de connexion, le pare-feu du serveur bloque la connexion, etc.

Comment résoudre l'erreur de connexion Comment résoudre l'erreur de connexion Nov 07, 2023 am 10:44 AM

Solution : 1. Vérifiez la connexion réseau ; 2. Vérifiez l'état du serveur ; 3. Effacez le cache et les cookies ; 4. Vérifiez les paramètres du pare-feu et du logiciel de sécurité ; 5. Essayez d'utiliser d'autres réseaux, etc.

Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Avertissement PHP : mysqli_connect() : (HY000/2002) : Solution de connexion refusée Jun 23, 2023 am 08:54 AM

Si vous rencontrez le message d'erreur suivant lorsque vous utilisez PHP pour vous connecter à une base de données MySQL : PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, vous pouvez essayer de résoudre ce problème en suivant les étapes ci-dessous. Pour confirmer si le service MySQL fonctionne normalement, vous devez d'abord vérifier si le service MySQL fonctionne normalement. Si le service ne fonctionne pas ou ne démarre pas, cela peut provoquer une erreur de refus de connexion. peux-tu

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Quelles données se trouvent dans le dossier de données ? Quelles données se trouvent dans le dossier de données ? May 05, 2023 pm 04:30 PM

Le dossier de données contient des données du système et du programme, telles que les paramètres logiciels et les packages d'installation. Chaque dossier du dossier Données représente un type différent de dossier de stockage de données, que le fichier de données fasse référence au nom de fichier Données ou à l'extension Données nommées. , ce sont tous des fichiers de données personnalisés par le système ou le programme. Les données sont un fichier de sauvegarde pour le stockage des données. Généralement, elles peuvent être ouvertes avec meidaplayer, le bloc-notes ou Word.

Que faire si les données de chargement MySQL sont tronquées ? Que faire si les données de chargement MySQL sont tronquées ? Feb 16, 2023 am 10:37 AM

Solution aux données de chargement MySQL tronquées : 1. Recherchez l'instruction SQL avec des caractères tronqués ; 2. Modifiez l'instruction en "LOAD DATA LOCAL INFILE "employee.txt" INTO TABLE EMPLOYEE jeu de caractères utf8 ;".

Quelles sont les différences entre xdata et data Quelles sont les différences entre xdata et data Dec 11, 2023 am 11:30 AM

Les différences sont les suivantes : 1. xdata fait généralement référence à des variables indépendantes, tandis que data fait référence à l'ensemble des données ; 2. xdata est principalement utilisé pour créer des modèles d'analyse de données, tandis que data est utilisé pour l'analyse de données et les statistiques ; pour l'analyse de régression, l'analyse de variance, la modélisation prédictive, les données peuvent être analysées à l'aide de diverses méthodes statistiques ; 4. xdata nécessite généralement un prétraitement des données et les données peuvent contenir des données originales complètes ;

Les taux d'échec des projets d'IA dépassent 80 % – une étude cite une mauvaise reconnaissance des problèmes et une concentration sur les dernières tendances technologiques parmi les problèmes majeurs Les taux d'échec des projets d'IA dépassent 80 % – une étude cite une mauvaise reconnaissance des problèmes et une concentration sur les dernières tendances technologiques parmi les problèmes majeurs Aug 31, 2024 am 12:59 AM

Tout le monde et leur tante semblent monter à bord du train de l'IA à la recherche de marges bénéficiaires gonflées et de battage publicitaire - il suffit de regarder le récent changement de marque Ryzen d'AMD comme un excellent exemple de ce battage médiatique de l'IA. Une étude récente menée par RAND a révélé que cela

See all articles