【发布时间】:2014-04-07 12:10:45
【问题描述】:
我是 Oracle 的新手,我想在我的 Java 存储过程中创建 DIRECTORY 对象,我将此目录的路径传递给该对象。所以我选择:
CREATE OR REPLACE
AND compile JAVA source named "Test0"
AS
import java.io.*;
import java.sql.*;
class Test0 {
public static void Load(String dctry) throws SQLException {
System.out.println(dctry);
#sql { CREATE DIRECTORY IMG_DIR_TMP AS :dctry};
}
}
/
CREATE OR REPLACE PROCEDURE test_0_sp(dctry IN VARCHAR2)
AS LANGUAGE JAVA
name 'Test0.Load(java.lang.String)';
/
begin
test_0_sp('/home/oracle/Desktop/sql/images');
end;
我得到:
oracle.jdbc.driver.OracleSQLException: ORA-01780: string literal required
我也尝试过,即使是普通的 PL/SQL 块,但我失败了:
declare
direct varchar2(50);
begin
direct := '/home/oracle/Desktop/sql/images';
DBMS_OUTPUT.PUT_LINE(direct);
CREATE DIRECTORY IMG_DIR_TMP AS :direct;
end;
Bind Variable "direct" is NOT DECLARED
非常感谢您的帮助,尤其是在第一个 Java 存储过程方面。 祝福你
【问题讨论】:
标签: java sql oracle stored-procedures