linux shell 執行oracle儲存過程
在linux下用shell執行oracle的儲存過程
#### 函式
#### 說 明:執行oracle儲存過程
#### 輸入引數:{資料庫tns}{資料庫使用者名稱}{資料庫密碼}{儲存過程名}{批處理日期}
#### 輸出引數:儲存過程執行結果
function exe_proc
{
oracle_sid=$1
user_name=$2
user_pwd=$3
proc_name=$4
etl_date=$5
error_code=`
sqlplus -S -L /nolog<<EOF
connect $user_pwd/[email protected] $oracle_sid
set termout off;
set echo off;
set feedback off;
set heading off;
set pagesize 0;
var ora_return_code number;
call $proc_name($etl_date,:ora_return_code);
select :ora_return_code from dual;
quit
EOF`
echo $error_code
}
相關推薦
linux shell 執行oracle儲存過程
在linux下用shell執行oracle的儲存過程 #### 函式 #### 說 明:執行oracle儲存過程 #### 輸入引數:{資料庫tns}{資料庫使用者名稱}{資料庫密碼}{儲存過程名}{批處理日期} #### 輸出引數:儲存過程執行結果 function
用動態sql執行oracle儲存過程
1、呼叫procedure: v_sql := 'Begin pkg_name.procedure_name(:in_v1, :in_v2, :out_v1, :out_v2); End;' ; EXECUTE IMMEDI
工作總結24 Windows的任務計劃,定時執行oracle儲存過程或語句塊
1、在pl/sql中,建立一個儲存過程 create or replace procedure pro as begin /***業務程式***/ commit; end pro; 2、在某
Java執行Oracle儲存過程並接收返回值
Java執行Oracle儲存過程並接收多個返回值(集合/數值) Java程式碼: package com.pure.util; import java.sql.Connection; import java.sql.DriverManager; import java.s
Oracle儲存過程執行初體驗
1、首先在plsql中建立一個插入語句的儲存過程(已經建立好表,兩列,id,name) create or replace procedure proc_suibian_insert(id in var
java傳list到Oracle儲存過程執行慢
儲存過程功能是迴圈對list遍歷,對錶進行插入操作,插入異常則進行修改操作。 可能為update語句執行慢,可是表裡有主鍵,update時主鍵為條件,走主鍵應該不會慢。 單獨把update語句拿出執行,不慢。 最終找出原因,list中物件用的為nvarchar而表裡主鍵為varchar2,執行語句時Or
Oracle儲存過程跨使用者執行查詢報錯
在Oracle中,在USERA下編寫一個儲存過程,該儲存過程中引用了另一個使用者USERB下的表或檢視物件。編譯該儲存過程,出現編譯錯誤。報ORA-00942: table or view does not exist。 但是該表或檢視的確在USERB下存在,而且已經授予了
通過shell指令碼呼叫oracle儲存過程並加入定時任務
例項 檔名:add_tab_partitions.sh #!/bin/sh username='waep' password='czty_waep' sqlplus -S ${username}/
指令碼實現oracle 儲存過程後臺執行
---問題描述 幾個存過,比對丟失的充值卡,都是幾億的表,在不同的資料庫,儲存過程用DB_LINK實現比對,並且將丟失的資料插入表種,寫了幾個存過,執行了十幾天,用shell指令碼實現存過後臺執行 ---shell指令碼 --money_test1 為儲存過程名字
ORACLE儲存過程plsql建立與執行(一)
關鍵字說明 a)建立引數的in \ out \in out說明 IN:傳入引數進PROCEDURE給儲存過程用; OUT:將儲存過程處理的結果傳出來; IN OUT:傳入引數給儲存過程,再將處理後的結果傳出來; b)PLS
oracle儲存過程執行時間的統計
過程的執行時間統計 declare v_starttime date; v_endtime date; v_sql varchar2(2000) := ''; begin v_starttime := sysdate; /****執行內容******/ dbms_out
用shell指令碼執行mysql儲存過程小記
#!/bin/bash HOSTNAME="127.0.0.1" #資料庫資訊 PORT="3306" USERNAME="root" PASSWORD="pwd" DBNAME="dbname" execSql="call procedureName(DATE_FORMAT(NOW()
oracle儲存過程中使用execute immediate執行sql報ora-01031許可權不足的問題
--問題描述: 使用者在儲存過程中呼叫execute immediate 執行 create table語句報錯 ORA-01031, 並且反映直接執行該語句無報錯。--原因根據問題可以發現使用者確實有create table的許可權,查詢dba_role_privs 和 d
Oracle儲存過程長時間執行檢查
1:查V$DB_OBJECT_CACHESELECT * FROM V$DB_OBJECT_CACHE WHERE name='CUX_OE_ORDER_RPT_PKG' AND LOCKS!='0';注意:CUX_OE_ORDER_RPT_PKG 為儲存過程的名稱。發現 locks=22:按物件查出sid的
oracle儲存過程定時執行簡單例子
/*插入天氣語句*/ INSERT INTO ENERGY.WEATHER VALUES(SEQ_WEATHER.nextVal,sysdate,'多雲轉晴','24','30','西南風','南風','微風','4','2','70','89','420','','適合旅
Oracle 儲存過程中執行動態SQL,動態表名
create or replace procedure mw_sys.clearrubbishdatefy2 is type table_type is table of mw_app.mwt_ud_yscsjdl.tablename%type; tablenameAr
如何在pl/sql developer 7執行到oracle儲存過程設定斷點的地方
如何高效除錯oracle儲存過程,尤其是父子網狀呼叫的儲存過程 1,在需要設定斷點的oracle儲存過程處設定斷點 如何設定斷點:直接在某行oracle儲存過程處單擊行首,會在行首顯示一個 中間以白叉填充的紅色小圓圈. 如何取消斷點:單擊中間以白叉
oracle儲存過程----儲存過程執行簡單的增刪改查sql
儲存過程執行簡單的增刪改查sql 1、儲存過程執行增加sql 首先寫一個增加的儲存過程: create or replace procedure test_add_procedure (id varchar,createtime varchar
解決問題:Oracle儲存過程執行成功,但資料沒有變化
Oracle儲存過程執行成功,但資料沒有化一. 檢查執行之後,是否在後面加寫一行commit;二. 檢查execute語句在where條件後面,操作的欄位是否trim(),否則很有可能執行結果不成功;示
oracle儲存過程中如何執行動態SQL語句
有時需要在oracle儲存過程中執行動態SQL語句 ,例如表名是動態的,或欄位是動態的,或查詢命令是動態的,可用下面的方法: set serveroutput ondeclare n number; sql_stmt varchar2(50); t varc