【发布时间】:2013-05-22 19:26:53
【问题描述】:
DECLARE
data_line VARCHAR2(200); -- Data line read from input file
data_file UTL_FILE.FILE_TYPE; -- Data file handle
my_dir VARCHAR2(250); -- Directory containing the data file
my_filename VARCHAR2(50);
BEGIN
my_dir := 'c:\temp';
my_filename := 'Lab4AData.dat';
my_file := UTL_FILE.FOPEN(my_dir, my_filename, 'r');
LOOP;
UTL_FILE.GET_LINE(data_file, data_line);
EXCEPTION
WHEN no_data_found THEN
DBMS_OUTPUT.PUT_LINE('Finished');
exit;
END LOOP;
END;
/
问题是我什至无法启动这个匿名代码块。首先,我只是试图打开我的数据文件并读取它,然后从那里构建。但我什至无法打开文件。
SQL Developer 错误报告开始于
从命令的第 5 行开始出错: 宣布然后重复代码块并添加:
ORA-06550:第 12 行,第 8 列: PLS-00103:遇到符号“;”当期待以下之一时: (开始 case 声明退出 goto if loop mod null pragma 使用【问题讨论】:
-
您的循环格式错误。 PL/SQL 语言参考中的循环:docs.oracle.com/cd/E11882_01/appdev.112/e25519/…
-
请注意,
fopen的第一个参数是“字符串 [that] 是 目录对象 名称,必须以大写形式指定。” docs.oracle.com/cd/E11882_01/appdev.112/e25788/…。目录对象不仅仅是路径。一个使用create directory创建一个目录对象。 docs.oracle.com/cd/E11882_01/server.112/e26088/… -
最后发现,能到达的文件系统就是运行PL/SQL的那个。如果您在服务器上执行此操作,则目录将在服务器上,而不是在您的本地计算机上。要从本地计算机加载数据,需要使用 SQL*Loader 等实用程序。 docs.oracle.com/cd/E11882_01/server.112/e22490/…
-
my_file 应该是 data_file。 my_file 未声明。
标签: oracle plsql oracle-sqldeveloper plsqldeveloper utl-file