0

次のエラーが表示されます。

ORA-00911: XDocument doc= Document.Load(crtCommand.ExecuteScalar().ToString());* に無効な文字があります

このコードで:

 using (OracleConnection conn1 = new OracleConnection(oradb1))
 {
     conn1.Open();

     using (OracleCommand crtCommand
         = new OracleCommand("SELECT dbms_metadata.get_sxml('VIEW','VIEW_TBL_A') FROM dual;", conn1))
     {
         XDocument doc = XDocument.Load(crtCommand.ExecuteScalar().ToString());
         XNamespace ns = "http://xmlns.oracle.com/ku";

         if (doc.Descendants(ns + "COL_LIST_ITEM").Any(c => c.Attributes().Any()))
             MessageBox.Show("COL_LIST has value");
         else 
             MessageBox.Show("COL_LIST has no value");
     }
 }
4

1 に答える 1

4

末尾のセミコロンを取り除きます。

using (OracleCommand crtCommand = new OracleCommand(
    "SELECT dbms_metadata.get_sxml('VIEW','VIEW_TBL_A') FROM dual", conn1))

オラクルは、即時実行のために単一のステートメントを渡す場合、ステートメント区切り文字を好みません。

于 2013-08-08T01:48:57.860 に答える