1. 程式人生 > >Oracle如何執行儲存過程

Oracle如何執行儲存過程

示例:有如下建立索引的儲存過程

--procedure create_index
create or replace procedure create_index(indexName in varchar2, tableName in varchar2, columnName in varchar2)
is
tmp_name VARCHAR2(50);
TMP_SQL VARCHAR2(1024);
cnt NUMBER;
begin
select table_name into tmp_name from user_tables where upper(table_name)=upper(tableName);
if length(tmp_name)>0 then  
	SELECT COUNT(*) INTO cnt FROM USER_INDEXES  T WHERE T.TABLE_NAME=''|| tableName ||''  AND T.INDEX_NAME=''|| indexName;
	IF cnt = 0 THEN
		execute immediate 'create index ' || indexName ||' on ' || tableName ||'('|| columnName ||') TABLESPACE TBS_TXNIDX';
	END IF;
end if;
EXCEPTION
WHEN NO_DATA_FOUND THEN
BEGIN
NULL;
END;
end;
/

1)在命令視窗下: exec 儲存過程(引數...);

exec create_index('IDX_ORG_SET_PROCESS_1','CPS_ORG_SETTLEMENT_PROCESS','ORG_IDENTITY_ID ASC');


2)在sql視窗下:

begin
 create_index('IDX_STATEMENT_DETAIL_LINK','CPS_BANK_STATEMENT_DETAIL','LINK_TXN_ID ASC');  
end;