Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann das Problem gelöst werden, dass ein zu langes Oracle Clob-Feld gespeichert wird?

Wie kann das Problem gelöst werden, dass ein zu langes Oracle Clob-Feld gespeichert wird?

零下一度
零下一度Original
2018-05-26 16:02:143472Durchsuche

Der Grund für dieses Problem ist, dass die gespleißte SQL-Anweisung zu lang ist.

Im Allgemeinen darf die SQL-Ausführungsanweisung von Oracle 4000 Zeichen auf Englisch und 2000 Zeichen auf Chinesisch nicht überschreiten Bei vielen Feldern ist die Länge des gespleißten SQL

zu lang, was zu Problemen führt.

Eine einfachere Lösung besteht darin, parametrisierte Abfragen zum Ausführen von SQL-Anweisungen zu verwenden. Der Beispielcode lautet wie folgt

OracleConnection Con = new System.Data.OracleClient.OracleConnection(connectStr);
           try
           {
decimal MsgId = 20;
               string InsertSql = @"insert into MSG
                                 (ID, TITLE, CONTENT, SORT, TIME, AUTHOR, GROUP)
                               values
                                 (:ID,
                                  :TITLE,
                                  :CONTENT,
                                  :SORT,
                                  :TIME,
                                  :AUTHOR,
                                  :GROUP)";
Con.Open();
               OracleCommand cmd = new OracleCommand(InsertSql, Con);
               OracleParameter TITLE = new OracleParameter("TITLE", OracleType.NVarChar);
               OracleParameter CONTENT = new OracleParameter("CONTENT", OracleType.Clob);
               OracleParameter GID = new OracleParameter("GID", OracleType.NVarChar);
               OracleParameter SORT = new OracleParameter("SORT", OracleType.Number);
               OracleParameter TIME = new OracleParameter("TIME", OracleType.DateTime);
               OracleParameter AUTHOR = new OracleParameter("AUTHOR", OracleType.NVarChar);
               OracleParameter GROUP = new OracleParameter("GROUP", OracleType.NVarChar);
TITLE.Value = Model.MsgTitle;
CONTENT.Value = Model.MsgContent;
ID.Value = Guid.NewGuid().ToString();
SORT.Value = MsgId;
TIME.Value = DateTime.Now;
AUTHOR.Value = Model.MsgAuthor;
GROUP.Value = Model.GroupId;
               cmd.Parameters.Add(MSGTITLE);
               cmd.Parameters.Add(MSGCONTENT);
               cmd.Parameters.Add(MSGID);
               cmd.Parameters.Add(MSGSORT);
               cmd.Parameters.Add(MSGTIME);
               cmd.Parameters.Add(MSGAUTHOR);
               cmd.Parameters.Add(MGSGROUP);
               cmd.ExecuteNonQuery();
               Con.Close();

           }
           catch (Exception ex)
           {

           }

Das obige ist der detaillierte Inhalt vonWie kann das Problem gelöst werden, dass ein zu langes Oracle Clob-Feld gespeichert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn