Oracle 调用 JAVA 实战(通过 Oracle 存储过程读取服务器目录)
2014-07-26 13:14
666 查看
首先,声明下次方法不是用来攻破服务器用的,只是为了学习如何用 Oracle 存储过程调用 JAVA 罢了。不过一些局域网应用系统使用 Oracle 作为数据存储工具时为了实现一些功能也许也会用到。此方法是在盖国强大神的《循序渐进Oracle 数据库管理、优化与备份恢复》偷学过来的 ^_^
Orale 表及存储过程
1. 首先创建个临时表
里边实现了 5 个函数。功能分别为取指定目录下的目录和文件、取指定目录下的目录、枚举磁盘所有根目录、判断指定文件或目录是否存在、判断是不是文件。
接下来就是编写存储过程或函数调用 JAVA Resource
Orale 表及存储过程
1. 首先创建个临时表
CREATE GLOBAL TEMPORARY TABLE OS_DIR( name VARCHAR2(255), size_byte NUMBER, modify_date DATE) ON COMMIT PRESERVE ROWS;2.. Oracle JAVA Resource
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED GET_OS_DIR_JAVA AS import java.io.*; import java.sql.*; public class GET_OS_DIR_JAVA { public static void getOSDirAndFile(String directory)throws SQLException { File path = new File(directory); String[] fileList = path.list(); String fileName; long fileSize; long fileDate; #sql{ truncate table OS_DIR}; for(int i = 0; i < fileList.length; i++) { fileName = fileList[i]; File fpath = new File(directory + '/' + fileName); fileSize = fpath.length(); fileDate = fpath.lastModified(); #sql{ insert into OS_DIR (name, size_byte, modify_date) values(:fileName, :fileSize, to_date('01/01/1970', 'mm/dd/yyyy') + :fileDate / (24*60*60*1000))}; } } public static void getOSDir(String directory)throws SQLException { File path = new File(directory); String[] fileList = path.list(); String fileName; long fileSize; long fileDate; #sql{ truncate table OS_DIR}; for(int i = 0; i < fileList.length; i++) { fileName = fileList[i]; File fpath = new File(directory + '/' + fileName); fileSize = fpath.length(); fileDate = fpath.lastModified(); if(fpath.isFile()) continue; #sql{ insert into OS_DIR (name, size_byte) values(:fileName, :fileSize)}; } } public static void getOSRoot()throws SQLException { String rootName; long rootSize; File[] roots = File.listRoots(); #sql{ truncate table OS_DIR}; for(int i = 0; i < roots.length; i++) { rootName = roots[i].toString(); rootSize = roots[i].length(); #sql{ insert into OS_DIR (name, size_byte) values(:rootName, :rootSize)}; } } public static boolean isDirOrFileExist(String directory)throws SQLException { File path = new File(directory); return path.exists(); } public static boolean isDirectory(String directory)throws SQLException { File path = new File(directory); return path.isDirectory();
}
里边实现了 5 个函数。功能分别为取指定目录下的目录和文件、取指定目录下的目录、枚举磁盘所有根目录、判断指定文件或目录是否存在、判断是不是文件。
接下来就是编写存储过程或函数调用 JAVA Resource
CREATE OR REPLACE PROCEDURE SP_GET_OS_DIR_JAVA(p_directory IN VARCHAR2) AS language java name 'GET_OS_DIR_JAVA.getOSDir(java.lang.String)'; CREATE OR REPLACE PROCEDURE SP_GET_OS_DIR_FILE_JAVA(p_directory IN VARCHAR2) AS language java name 'GET_OS_DIR_JAVA.getOSDirAndFile(java.lang.String)'; CREATE OR REPLACE PROCEDURE SP_GET_OS_ROOT_JAVA AS language java name 'GET_OS_DIR_JAVA.getOSRoot()'; CREATE OR REPLACE FUNCTION SP_IS_OS_DIR_FILE_EXIST_JAVA(p_directory IN VARCHAR2) RETURN Boolean AS language java name 'GET_OS_DIR_JAVA.isDirOrFileExist(java.lang.String)return java.lang.Boolean'; CREATE OR REPLACE FUNCTION SP_IS_OS_DIR_JAVA(p_directory IN VARCHAR2) RETURN Boolean AS language java name 'GET_OS_DIR_JAVA.isDirectory(java.lang.String)return java.lang.Boolean';
相关文章推荐
- Java调用oracle存储过程通过游标返回临时表数据
- 如何通过java程序调用oracle中的存储过程
- Java调用oracle存储过程通过游标返回临时表数据
- Java调用oracle存储过程通过游标返回临时表数据
- SQL SERVER 数据库通过连接服务器 调用ORACLE 数据库中的存储过程
- java调用oracle的存储过程
- Java调用Oracle的存储过程(实例)
- 存储过程调用,java中通过bboss persistent实现数据库存储过程的调用(命名变量绑定)
- 调用存储过程,java中通过bboss persistent实现数据库存储过程的调用(位置变量绑定)
- Java调用Oracle的存储过程(实例)
- java调用存储过程的三种方式(包含通过hibernate调用)
- java 调用oracle的存储过程返回记录集
- Oracle分页存储过程及java的具体调用方法
- oracle实现存储过程的分页并用java代码调用存储过程
- 用oracle的java存储过程实现BLOB字段的字符串读取
- 用oracle的java存储过程实现BLOB字段的字符串读取
- oracle 存储过程调用java一
- Java调用Oracle 存储过程
- 通过java 程序调用数据库中的存储过程
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】