Oracle sqlplus 和 Linux Shell的相互傳值

首先,寫一個簡單的PLSQL函數,就是簡單返回一個拼湊的URL值

create or replace function getAttURL
(hostname in varchar2,attID in varchar2)
return varchar2 is
Result varchar2(255);
objID integer;
begin
SELECT objectid INTO objID FROM jiveAttachment WHERE ATTACHMENTID = attID;
Result := 'http://'||hostname||'/servlet/JiveServlet/download/'||objID||'-'||attID||'/';
return(Result);
end getAttURL;


備註一下sqlplus的set命令:

SQL>set colsep' ';     //-域輸出分隔符

SQL>set echo off;     //顯示start啓動的腳本中的每個sql命令,缺省爲on

SQL> set echo on //設置運行命令是是否顯示語句

SQL> set feedback on; //設置顯示“已選擇XX行”

SQL>set feedback off;  //回顯本次sql命令處理的記錄條數,缺省爲on

SQL>set heading off;   //輸出域標題,缺省爲on

SQL>set pagesize 0;   //輸出每頁行數,缺省爲24,爲了避免分頁,可設定爲0。

SQL>set linesize 80;   //輸出一行字符個數,缺省爲80

SQL>set numwidth 12;  //輸出number類型域長度,缺省爲10

SQL>set termout off;   //顯示腳本中的命令的執行結果,缺省爲on

SQL>set trimout on;    //去除標準輸出每行的拖尾空格,缺省爲off

SQL>set trimspool on;   //去除重定向(spool)輸出每行的拖尾空格,缺省爲off

SQL>set serveroutput on; //設置允許顯示輸出類似dbms_output

SQL> set timing on; //設置顯示“已用時間:XXXX”

SQL> set autotrace on-; //設置允許對執行的sql進行分析

SQL> set verify off //可以關閉和打開提示確認信息old 1和new 1的顯示.




#!/bin/bash
#author:FM
#date:2009-02-03
#This script will test get correct URL FROM attachmentID
#
attURL=$(sqlplus -s 'clsp/clsp@orcl'<<\EOF
set pages 0 feed off
set heading off;
set feedback off;
set verify off; //這個
set linesize 1000;
define hostname_str = "bocc-qa.test.locala/bocc";
define attID = "1118";
SELECT getAttURL('&hostname_str','&attID') FROM dual;
EOF
)
echo $attURL

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章