元數據管理中xmltype的運用

關於查詢sql語句的寫法:

     string strSql = @"select  layName , i.MetaDate.extract('//Metadata').getStringVal() as truename from METADATE i where fileName = ' nihao' ";

如何得到結果:

      string strSql = @"select  layName , i.MetaDate.extract('//Metadata').getStringVal() as truename from METADATE i where" +
             SQL;
            string strConnect = DBHelper.ConnectionString;
            OracleParameter[] ops = new OracleParameter[] { new OracleParameter("layer", OracleType.VarChar) };
            OracleDataReader oracleDateReader = DBManager.DBUitity.OracleHelper.ExecuteReader(strConnect, CommandType.Text, strSql, ops);

            while (oracleDateReader.Read())
            {
                metaDictionary.Add(oracleDateReader.GetString(0), oracleDateReader.GetString(1));
            }

 模糊查找的sql的寫法:

   sql = "  upper(i.MetaDate.extract('//" + elementName_node + "/text()').getStringVal()) like '%'||'" + value + "'||" + "'%'" + connector;

 

創造一個元數據表:

    string sql = "create table METADATE (id number, layName varchar2(20), MetaDate sys.xmltype)";

插入一條記錄:

      string strSql = @"insert into METADATE (ID,layName,MetaDate) values ( 1, '" + layerName + "',sys.xmlType.createXML('" + xmlContend + "'))";//where i.xmldoc.extract('//name/a/@id').getStringVal() = 1";

更新一條記錄:

    string strSql = @"update METADATE  set METADATE=updateXML(METADATE,'//" + rootElement + "','" + newValue + "') where " + "layName=" + "'" + layerName + "'";

 

發佈了25 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章