熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

oracle筆記

2013-11-13 16:04:23  來源: Oracle 

  
  對於游標進於update(行鎖)的操作實驗
  /*
  declare
   x number;
   mc varchar();
   cursor findtest is select idmyname from testtable FOR UPDATE;
  begin
  
  open findtest;
  fetch findtest into xmc;
  UPDATE testtable SET myname =myid WHERE CURRENT OF findtest;
  DBMS_OUTPUTPUT_LINE(SQL%ROWCOUNT);
  close findtest;
  update testtable set myname=ss where id>;
  DBMS_OUTPUTPUT_LINE(更新了||SQL%ROWCOUNT||條數據);
  
  end;
  */
  /
  
  
  
  
  create or replace procedure debugout(mydir varcharmyfile varcharmyinfo varchar) as
  進行文件寫的存儲過程調用方式 debugout(目錄名文件名字符串)
  注意:oracel對於plsql的文件操作默認是不能對文件進行操作的所以按下列步驟進行設定
  關閉數據庫修改initsidora文件在文件中增加utl_file_dir參數其值為目錄名
  例如對於windows c: c:\xx unix 為/tmp /tmp/xx
  檢查目錄的文件系統確定oracle用戶是否有關於該文件路徑的讀寫權限若不具有則通過chmod filepath
  再啟動數據庫這樣存儲過程就能夠正常的生成和讀取文件了
  V_NewLine varchar();
  v_FileHand UTL_FILEFILE_TYPE; 文件句柄
  begin
   v_FileHand:=UTL_FILEFOPEN(mydirmyfilea);
   w 為寫 r為讀 a添加(文件不存在自生成)
   UTL_FILEPUT_LINE(v_FileHandto_char(sysdateyyyymmdd hh:mi:ss ) || myinfo);
   UTL_FILEFCLOSE(v_FileHand);
  exception
   when UTL_FILEINVALID_OPERATION then
   raise_application_error(文件不能打開);
  
   when UTL_FILEINVALID_FILEHANDLE then
   raise_application_error(文件句柄不是打開的文件);
  
   when UTL_FILEWRITE_ERROR then
   raise_application_error(寫操作失敗);
  
   when UTL_FILEINVALID_PATH then
   raise_application_error(文件或目錄寫操作失敗);
  
   end;
  
  /
  
  
  可以執行DDL及DML語句的存儲過程
  CREATE OR REPLACE PROCEDURE PEXESQL(s varchar) as
  i integer;
  r integer;
  begin
  可以執行insertupdatedelete(事物不提交)
  如果是create table等命令要明文授於系統權限對於drop table不用
  i:=dbms_sqlopen_cursor;
  dbms_sqlparse(isdbms_sqlv);
  r:=dbms_sqlexecute(i);
  commit;
  dbms_sqlclose_cursor(i);
   exception when others then
   dbms_outputput_line(系統出了錯);
   if dbms_sqlis_open(i) then
   dbms_sqlclose_cursor(i);
   end if;
   raise輸出詳細出錯信息
   raise;
   dbms_outputput_line(系統出了錯了SQLCODE=||sqlcode|| sqlerrm=||sqlerrm);
  
  end;
  
  /*
  p不能安ORACEL的問題
  原因
  Any platform that uses the Intel Pentium processor with the
  Sun JRE and Symmantec JIT will encounter this problem Windows NT
  Windows and NetWare platforms are confirmed to be affected
  
  解決辦法
   建個臨時目錄將oracle安裝盤拷貝到該目錄中
  在該目錄中搜索symcjitdll (我找到了兩個)
  
   將symcjitdll改名為symcjitold
  
   運行\install\win目錄下的setupexe 就應該可以了
  
  */

From:http://tw.wingwit.com/Article/program/Oracle/201311/17767.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.