我最初在超级用户上问过这个问题,但是有人建议我转发这里。
我使用的是最新版本的APEX(4.1.1)和Oracle(11.2.0.3)。
我正在将CSV数据上传到一组表格。 我一直在尝试,并遇到了一些我以前从未见过的问题。
例如,我尝试将数据导入此表:
CREATE TABLE SW_ENGINEER
(ENGINEER_NO VARCHAR2(10),
ENGINEER_NAME VARCHAR2(50),
CONSTRAINT SW_ENG_PK PRIMARY KEY (ENGINEER_NO))
这个简化的数据子集失败了:
call log no,contract_no,call date,agreed date,agreed time,actual arrive,engineer no,engineer name,equipment code,cust desc,eng desc
a,b,c,22-Mar-06,1,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,22-Mar-06,2,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,19-Mar-06,3,19/03/2006 09:15,351,Rory Juarez,d,e,f
(在较大的数据集上失败方式相同) 我无法使用APEX或SQL Developer加载它,如下所示:
这似乎有效,并在文本数据加载存储库中显示摘要行,但在检查时它已加载0行,79行失败。单击79显示它们都遭受“ORA-01008:并非所有变量绑定”。所选列对我来说看起来不错,所以我想知道它是否仍包括其他一些,尽管有'否'设置?
如果我在上传之前编辑csv以删除不相关的列,则不会出现此问题,但如果我可以使用列映射则会更容易。
我发现可以通过从csv文件列中删除标头值来克服这个问题。所以看起来设置Header Row复选框实际上并不会导致它忽略标题行,而是导致错误的标题值'engineer-no'。这对我来说似乎不对。 我过去使用过这两种方法都没有问题,我想知道最近的升级是否与此有关。
有什么想法吗?或者我错过了一些明显的东西?
答案 0 :(得分:2)
我的一位同事发现了这个(并非完全令人满意的)解决方案:
如果你需要的列都在开头,它就可以了,如下所示:
engineer no,engineer name,equipment code,cust desc,eng desc,call log no,contract_no,call date,agreed date,agreed time,actual arrive
654,Flynn Hobbs,d,e,f,a,b,c,22-Mar-06,1,23/03/2006 15:00
654,Flynn Hobbs,d,e,f,a,b,c,22-Mar-06,2,23/03/2006 15:00
351,Rory Juarez,d,e,f,a,b,c,19-Mar-06,3,19/03/2006 09:15
所以它看起来像是在APEX文本导入中包含YES / NO包含功能的错误?
答案 1 :(得分:0)
以CSV格式
call log no,contract_no,call date,agreed date,agreed time,actual arrive,engineer no,engineer name,equipment code,cust desc,eng desc
a,b,c,22-Mar-06,1,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,22-Mar-06,2,23/03/2006 15:00,654,Flynn Hobbs,d,e,f
a,b,c,19-Mar-06,3,19/03/2006 09:15,351,Rory Juarez,d,e,f
您有11列,并尝试将其导入3列。
答案 2 :(得分:0)
我不太清楚为什么它不适合你。它对我来说很好,使用Apex Data Workshop进行复制和粘贴。 (5.0.4版)
当然,我只能上传这三个结果中的两个,其中一个有重复的ID值。但它奏效了。
PS:对于您可能拥有','作为行的列值的一部分的较大数据集,请考虑使用“Optional enclosed by”选项,在上传期间使用双引号(“)设置它们它将整个值视为一个值。