當前位置:首頁 » 編程語言 » sqlxml導入

sqlxml導入

發布時間: 2024-12-06 10:58:39

① 在xml文件中插入sql語句

public class XMLTest
{
private Hashtable<String, String> hashtable;
private Vector sqlv=new Vector(); //用來存放Hashtable
public Hashtable getSQL(){
hashtable=new Hashtable<String, String>();
try{
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
//path得到的值為 D:\tomcat5520\bin 即%tomcat%\bin目錄
String path=System.getProperty("user.dir");
System.out.println("在XMLTest.java文件中列印user.dir的值為--"+path);
int pos=path.lastIndexOf("\\");
//下面這條語句得到的是 目錄%tomcat%
path=path.substring(0,pos);
Document doc=db.parse(path+"/webapps/WebRoot/WEB-INF/sql-config.xml");

Element root=doc.getDocumentElement();
NodeList list=root.getElementsByTagName_r("sql-info");
for(int i=0;i<list.getLength();i++){
//得到第i個sql-info節點元素
Element name=(Element)list.item(i);

//在當前的sql-info節點中 取出所有的sql-name對應的節點
NodeList info=name.getElementsByTagName_r("sql-name");
//在當前當前的sql-info節點中 得到sql-name的多個節點,始終只取其中的第一個節點
Element nameelement=(Element)info.item(0);
//在當前當前的sql-info節點中 得到sql-name的多個節點,始終只取其中的第一個節點sql-name對應的文本的值
String namestr=nameelement.getFirstChild().getNodeValue();

//在當前的sql-info節點中 取出所有的sql-value對應的節點
NodeList sql=name.getElementsByTagName_r("sql-value");
//在當前當前的sql-info節點中 得到sql-value的多個節點,始終只取其中的第一個節點
Element sqlelement=(Element)sql.item(0);
//在當前當前的sql-info節點中 得到sql-value的多個節點,始終只取其中的第一個節點sql-value對應的文本的值
String sqlstr=sqlelement.getFirstChild().getNodeValue();
// System.out.println("sql語句為:"+sqlstr);
hashtable.put(namestr,sqlstr); //放入到Hashtable中
}
}catch(Exception e){
System.out.println("讀取sql-config.xml "+e.getMessage());
}
return hashtable;
}

public void addHashtable(){
if(sqlv==null)
sqlv=new Vector();
Hashtable ht=getSQL(); //得到配置文件的Hashtable
sqlv.add(ht);
}

public Hashtable getHashtable(){
Hashtable ht=null;
if(sqlv==null)
sqlv=new Vector();
if(sqlv.isEmpty()){
addHashtable();
}
ht=(Hashtable)sqlv.get(0);
return ht;
}

public static void main(String[] args) throws Exception
{

XMLTest xt=new XMLTest();
Hashtable ht=xt.getSQL();
System.out.println(ht.get("在途"));
}
}

② 在Oracle表數據和xml文件間相互導入導出的PL/SQL 過程

ORA-31001: 資源句柄或路徑名 "F:\oracle\xml\people.xml" 無效
ORA-06512: 在 "SYS.XDBURITYPE", line 11
ORA-06512: 在 "XDB.DBMS_XSLPROCESSOR", line 142
ORA-29280: 目錄路徑無效
ORA-29280: 目錄路徑無效
ORA-29280: 目錄路徑無效
ORA-06512: 在 "XDB.DBMS_XMLPARSER", line 119
ORA-06512: 在 "SYS.XML2DB", line 34
ORA-06512: 在 line 2
問題補充:F:\oracle\xml\people.xml 這個路徑沒錯,的確有
而且在別的過程裡面

③ sql 2005資料庫 如何操作xml

查詢操作
在定義了一個XML類型的數據之後,我們最常用的就是查詢操作,下面我們來介紹如何使用SQL語句來進行查詢操作的。
在T-Sql中,提供了兩個對XML類型數據進行查詢的函數,分別是query(xquery)和value(xquery,
dataType),其中,query(xquery)得到的是帶有標簽的數據,而value(xquery,
dataType)得到的則是標簽的內容。接下類我們分別使用這兩個函數來進行查詢。
1
、使用query(xquery)
查詢
我們需要得到書的標題(title),使用query(xquery)來進行查詢,查詢語句為:
select
@xmlDoc.query('/book/title')
2
、使用value(xquery,
dataType)
查詢
同樣是得到書的標題,使用value函數,需要指明兩個參數,一個為xquery,
另一個為得到數據的類型。看下面的查詢語句:
select
@xmlDoc.value('(/book/title)[1]',
'nvarchar(max)')
3
、查詢屬性值
無論是使用query還是value,都可以很容易的得到一個節點的某個屬性值,例如,我們很希望得到book節點的id,我們這里使用value方法進行查詢,語句為:
select
@xmlDoc.value('(/book/@id)[1]',
'nvarchar(max)')
4
、使用xpath進行查詢
xpath是統一的Xml查詢語句。使用XPath可以方便的得到想要的節點,而不用使用where語句。例如,我們在@xmlDoc中添加了另外一個節點
例如
:得到id為0002的book節點
select
@xmlDoc.query('(/root/book[@id="0002"])')
參考資料:SQL如何操作Xml欄位
http://www.studyofnet.com/news/490.html

熱點內容
dede整站源碼 發布:2025-01-04 10:31:51 瀏覽:385
高級英語腳本 發布:2025-01-04 10:30:22 瀏覽:249
監控網路存儲伺服器 發布:2025-01-04 10:21:44 瀏覽:701
照片無損壓縮 發布:2025-01-04 10:21:37 瀏覽:363
qt源碼編譯環境 發布:2025-01-04 10:20:08 瀏覽:851
小愛如何破解六個的數字密碼 發布:2025-01-04 10:20:00 瀏覽:21
寫地球編程 發布:2025-01-04 10:11:49 瀏覽:712
gif動圖怎麼壓縮 發布:2025-01-04 10:11:47 瀏覽:943
自如哪些配置可以帶走 發布:2025-01-04 10:11:07 瀏覽:911
淘寶視頻免費上傳 發布:2025-01-04 10:10:31 瀏覽:935