当前位置:首页 » 编程语言 » 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

热点内容
苹果手机的wifi密码怎么看 发布:2025-03-13 14:30:52 浏览:48
php直播开发教程 发布:2025-03-13 14:29:20 浏览:909
如何防止女朋友要手机密码 发布:2025-03-13 14:28:46 浏览:889
关系数据库的概念 发布:2025-03-13 14:20:12 浏览:459
linuxrpm卸载 发布:2025-03-13 14:17:45 浏览:650
android在线支付 发布:2025-03-13 13:50:21 浏览:791
瑞影无损图片压缩大师 发布:2025-03-13 13:27:33 浏览:452
应用怎样加密 发布:2025-03-13 13:18:10 浏览:674
李弘毅访问 发布:2025-03-13 13:17:30 浏览:656
服务器搭建直播平台源码 发布:2025-03-13 12:54:38 浏览:813