今天一同事發現在8i下,用sys使用者登入,不能將使用者A的對象許可權直接授予使用者B,如下語句會報沒有限限的錯:Grant Select On UserA.Table1 to UserB後來,找了一個9i的資料庫測試,發現沒有報錯.於是去查文檔:Oracle Administrator's Guide,發現這項功能確實是9i以上的版本才增加的.通過查詢許可權視圖,可以看到這種方式授權後,授權人仍然是UserA,相關於Sys轉授.8i的該文檔上記錄了需要先用UserA將Grant
CREATE OR REPLACE PROCEDURE TABLEPAGE_SELECT(v_page_size int, --the size of a page of list v_current_page int, --the current page of list v_table_name varchar2, --the talbe name
function open_cursor:開啟一個動態資料指標,並返回一個整型;procedure close_cursor(c in out integer);關閉一個動態資料指標,參數為open_cursor所開啟的遊標;procedure parse(c in integer, statement in varchar2, language_flag in
眾所周知的幾個結果集集合操作命令,今天詳細地測試了一下,發現一些問題,記錄備考。 假設我們有一個表Student,包括以下欄位與資料: drop table student; create table student(id int primary key,name nvarchar2(50) not null,score number not null); insert into student values(1,'Aaron',78);insert into student values(
開啟Access資料庫,隨便選擇一張表,先將表名改為大寫字母,然後選擇檔案類型為:ODBC資料庫(),下一步,假如你沒有建立DNS,可以建立一個,根據提示,建立oracle的DNS,將會出現要連的資料庫名,使用者名稱,密碼,正確輸入後測試連接,正確後點擊ok資料就匯入了,你要不知道如何建立使用者DNS,也可以直接進->控制台||管理工具||資料來源(ODBC),添加使用者DNS,隨便起個名字(記著呆會就用它)驅動程式為:Oracle in Oracleinclient 10g_homel,
方式1CREATE OR REPLACE PROCEDURE demo(salary IN NUMBER) AS cursor_name INTEGER; rows_processed INTEGER;BEGIN cursor_name := dbms_sql.open_cursor; dbms_sql.parse(cursor_name, 'DELETE FROM emp WHERE sal > :x', dbms_sql);
create or replace type tb_strSplit as table of varchar2(4000);create or replace function to_table(pv_str varchar2,pv_split varchar2) return tb_strSplit as ltab tb_strSplit := tb_strSplit(); pos integer := 0; ls varchar2(4000) := pv_str;begin