1

我对 JavaDB 和 Netbeans 感到非常沮丧!现在将不胜感激任何帮助。我使用带有最新 Java SDK 的 Netbeans 7.2.1。

目标:
将 CSV 格式的数据从位于 C:\ 的文件中导入名为 APP.USERS 的 JavaDB 表中。

我做了什么:
我使用以下代码尝试使用 Netbeans 中的 SQL 查询实用程序将数据导入表中:

  1. 呼叫功能:

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE (null, 'USERS', 'FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0); ` 从 APP.USERS 中选择 *;`

  1. “其他”功能:

INSERT INTO APP.USERS(FIRSTNAME,LASTNAME,USERNAME,PASSWORD,UNIQUENR,MEMBERSINCE,DOB,EMAIL,AWARDPOINTS,USERTYPE) VALUES (FROM 'c:\SQL_APP_USERS.txt' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' )); --Check the content of the table. SELECT * FROM APP.USERS;

问题:

  • 阅读 Oracle KB 文档对我一点帮助都没有!!!( http://docs.oracle.com/javadb/10.4.1.3/tools/ctoolsimport16245.html)
  • 执行第一个提到的函数显示结果:Error code -1, SQL state 42Y03: 'SYSCS_UTIL.SYSCS_IMPORT_DATA' is not recognized as a function or procedure.
  • 执行第二个提到的函数显示结果:Error code -1, SQL state 42X01: Syntax error: Encountered "FROM" at line 2, column 9

请帮忙。

4

1 回答 1

2

1.) 您给我们的指定功能

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE(...

与错误信息不匹配

SYSCS_UTIL.SYSCS_IMPORT_DATA不被识别为函数或过程。

2.) 传值个数不符合要求。
没有8个参数的重载函数。

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
   (null,'STAFF','c:\output\myfile.del',';','%',null,0);
     1      2             3              4   5   6   7

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
   (null, 'USERS','FIRSTNAME,...,', 'c:\SQL_APP_USERS', '\n',',','UTF-8', 0);
     1      2             3                  4            5   6     7     8

顺序也错了。
这意味着每一列都是单独的行。

'\n',','

应该

',','\n'

3.) 要是这么简单就好了。

INSERT INTO ... VALUES (FROM 'c:\SQL_APP_USERS.txt'

因此,这里有一个简单的 Java Utility 类,可用于将 CSV 文件加载到数据库中。

将 CSV 导入数据库示例

测试:

  • 创建一个空文件c:\myfile.del

CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
     (null,'CUSTOMER','c:\myfile.del',';','%',null,0);

在此处输入图像描述

在这里,FRIENDS为测试创建了表。

在此处输入图像描述

由于文件 'c:\myfile.del' 为空,因此无事可做。
没有错误:is not recognized as a function or procedure

在此处输入图像描述

于 2013-08-18T16:30:16.447 回答