我有一个使用Editplus(在Windows中)创建的示例xml文件。
< ?xml version="1.0" encoding="UTF-8" ?>
< badges >
< row UserId="3714" Name="Teacher" Date="2008-09-15T08:55:03.923"/>
< row UserId="994" Name="Teacher" Date="2008-09-15T08:55:03.957"/>
< / badges>
我的目标是将这些信息放入OracleDB表中。如这里的建议,我试图执行sql命令。但是不能成功
========================= SQL查询1 ======================= ======
SQL> SELECT XMLTYPE(bfilename('D', 'tmp.xml'), nls_charset_id('UTF8')) xml_data FROM dual;
XML_DATA
------------------------------------------------------------
<?xml version="1.0" encoding="WINDOWS-1252"?>
<badges>
<row UserId="3714" Name
在输出中,我看到xml文件的一半被截断了。并且输出中的编码类型被视为WINDOWS-1252。有人可以解释为什么会这样吗?
================================================== ========================
============================== SQL查询2 ================ ===============
SQL> SELECT UserId, Name, to_timestamp(dt, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') dt
2 FROM (SELECT XMLTYPE(bfilename('D', 'tmp.xml'),
3 nls_charset_id('WINDOWS-1252')) xml_data
4 FROM dual),
5 XMLTable('for $i in /badges/row
6 return $i'
7 passing xml_data
8 columns UserId NUMBER path '@UserId',
9 Name VARCHAR2(50) path '@Name',
10 dt VARCHAR2(25) path '@Date');
XMLTable('for $i in /badges/row
*
ERROR at line 5:
ORA-00933: SQL command not properly ended
==================================================
===================同样的查询在这里工作。但是对我来说却不是。我的机器上安装了oracle 10g。有人可以提出更正以使查询工作。
谢谢。
考虑到您的第一点,您的输出只会在显示时被截断。您可以使用以下命令更改SQL * Plus中显示的字节数SET LONG
:
SQL> SELECT XMLTYPE(bfilename('D', 'test.xml'),
2 nls_charset_id('WINDOWS-1252')) xml_data FROM dual;
XML_DATA
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<badges>
<row UserId="3714" Name=
SQL> SET LONG 4000
SQL> /
XML_DATA
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<badges>
<row UserId="3714" Name="Teacher" Date="2008-09-15T08:55:03.923"/>
<row UserId="994" Name="Teacher" Date="2008-09-15T08:55:03.957"/>
</badges>
如您所知,您的字符集将根据您的NLS会话参数进行修改(即:文件将转换为客户端的字符集)。
对于第二点:
因为我无法使用Oracle 10.2.0.3复制:
SQL> SELECT UserId, NAME, to_timestamp(dt, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') dt
2 FROM (SELECT XMLTYPE(bfilename('D', 'test.xml'),
3 nls_charset_id('WINDOWS-1252')) xml_data FROM dual),
4 XMLTable('for $i in /badges/row
5 return $i'
6 passing xml_data columns UserId NUMBER path '@UserId',
7 NAME VARCHAR2(50) path '@Name',
8 dt VARCHAR2(25) path '@Date');
USERID NAME DT
---------- --------- ----------------------------
3714 Teacher 15/09/08 08:55:03,923000000
994 Teacher 15/09/08 08:55:03,957000000
更新: 此XMLTable synthax必须是10gR2(10.2。*)的新功能(需要确认)
但是,您可以使用另一种访问XML数据的方法:
SQL> SELECT extractvalue(column_value, '/row/@UserId') "userID",
2 extractvalue(column_value, '/row/@Name') "Name",
3 extractvalue(column_value, '/row/@Date') "Date"
4 FROM TABLE(XMLSequence(XMLTYPE(bfilename('D', 'tmp.xml'),
5 nls_charset_id('WINDOWS-1252')).extract('/badges/row'))) t;
userID Name Date
------- --------- ------------------------
3718 Teacher 2008-09-15T08:55:03.923
994 Teacher 2008-09-15T08:55:03.957
我正在创建一个TicTacToe游戏。我把所有带有ActionListeners的后端放在按钮上,将按钮添加到面板,设置框架等等。 然而,当我运行程序时,我的JPanel似乎没有添加到JFrame中。我试过使用不同的布局,仔细检查是否确实放置了。为所有内容添加行,之前的所有帖子似乎都指向了我认为已经涵盖的内容。 如果这真的很直接,我提前道歉。 谢谢你的帮助。
初始化引导层 java.lang.module.FindException 时出错:找不到模块 helloFX 我的包名为helloFX,在从eclipse市场安装javafx时,我收到上面提到的执行错误
我是Java新手,在过去从未遇到过麻烦的事情上苦苦挣扎。不管出于什么原因,我不能扫描代码中的int(或double),但我可以扫描字符串。我正在发布扫描程序无法正常工作的代码片段,请告诉我是否应该包含程序的其余部分。 在底部附近,不接受任何扫描值。我试着把它放在一个不同于的方法中,我试着重新排列它,为它创建一个单独的扫描仪,以及其他一些事情。调试器显示,不管怎样,我都会被卡在那行代码上。我做错了什
我的问题是,我想将地图的键显示为JComboBox,它只显示其中一个,这段代码只是我遇到问题的部分,如果读者在我的代码中没有看到问题,我将在这里列出其他类。因此,基本上,我将键作为指令对象,将值作为一组学生对象(一个教师有多个学生),当我创建JComboBox时,它只显示其中一个键。我尝试了一种不同的排序,因为我认为它可能只使用最后添加的键(就像键被替换一样),但这不是我能看到的问题。不管怎么说,
当我尝试运行SBT时,我得到以下消息:
安装 cuda 遇到了很多问题,这里简单记一下 下载 cudnn download cuda-toolkit 版本 查看 cuda 版本: cat /usr/local/cuda/version.txt 查看 cudnn 版本: cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 查看显卡信息: lspci | grep VGA