【发布时间】:2022-07-14 01:32:22
【问题描述】:
我继承了一个旧的 Oracle 12c 数据库,该数据库在本地 Oracle 19c 服务器上运行。该数据库包含以下Java Stored Procedure
create or replace and compile java source named fill_share_content as
import java.io.*;
import java.sql.*;
public class Fill_Share_Content
{
public static void execute(String directory) throws SQLException
{
File path = new File( directory );
String[] list = path.list();
String separator = path.separator;
for(int i = 0; i < list.length; i++)
{
String filename = list[i];
File datei = new File( directory + separator + filename );
if ( datei.isFile() )
{
Timestamp filedate = new Timestamp( datei.lastModified() );
#sql { insert into Share_Content (filename, filedate) values (:filename, :filedate) };
}
}
}
};
/
在尝试执行创建和编译 Java SP 的语句时出现问题:第 20 行
#sql { insert into Share_Content (filename, filedate) values (:filename, :filedate) };
抛出错误
错误:非法字符:'#'
通常我能够在数据库上创建、编译和执行 Java 存储过程。问题:
- 以井号开头的行是什么意思?我不熟悉 Java 中的这种结构,特定于 Oracle 中的 Java 存储过程?
- 如何才能创建和编译 Java 存储过程?据称该代码已经在另一个实例上运行,因此该代码应该可以工作。
【问题讨论】:
标签: oracle java-stored-procedures