【发布时间】:2014-07-24 10:44:46
【问题描述】:
我有一个应用程序,它有一个 oracle 数据库,所以应用程序的安装需要运行一些 oracle 命令脚本文件来创建数据库并执行一些 DDL 操作。这些操作包括一些表空间创建、模式定义等。
我正在尝试使用 java 应用程序准备安装向导。该向导需要运行这些命令。我的具体问题是:如何从我的 java 应用程序中运行 oracle 命令脚本文件?我确实需要一个函数,它将 sql 命令文件路径作为输入参数并在脚本文件中执行命令,同时考虑到某些参数(例如,一些用户选择的名称)必须传递给脚本文件执行
我曾经使用 PL/SQL 命令行功能以特权用户身份执行 sql 命令。
这里以文件的一部分为例
ACCEPT TS_NAME CHAR PROMPT 'Enter Table Space Name : '
ACCEPT DB_DATAFILE CHAR PROMPT 'Enter DataBase File full path : '
ACCEPT DB_SIZE NUMBER PROMPT 'Enter DataBase File Size (MB) : '
ACCEPT DB_USER CHAR PROMPT 'Enter User Name : '
ACCEPT DB_PASS CHAR PROMPT 'Enter Table Password Name: ' HIDE
ACCEPT DB_TNSNAME CHAR PROMPT 'Enter DATABASE TNSNAME:'
ACCEPT DB_LOG_PATH CHAR PROMPT 'Enter Log File Path : '
PROMPT Create Tablespace
pause Press Return to continue ...
CREATE TABLESPACE &TS_NAME DATAFILE '&DB_DATAFILE' SIZE &DB_SIZE M
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED LOGGING PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL;
PROMPT Create User
pause Press Return to continue ...
CREATE USER &DB_USER IDENTIFIED BY &DB_PASS DEFAULT TABLESPACE &TS_NAME PROFILE DEFAULT
QUOTA UNLIMITED ON USERS;
COMMIT;
GRANT CONNECT TO &DB_USER;
GRANT RESOURCE TO &DB_USER;
COMMIT;
【问题讨论】: