1. 如何用shell腳本將在mysql資料庫中得到的數據導入到oracle資料庫中
有一個工具是mysql到oracle做數據遷移的叫Convert Mysql to Oracle 你可以試試,不知道合不合適。
非要弄shell的話,那可真是麻煩可以選擇讓程序員寫個小程序轉換sql的讓後用shell調用。
真自己寫shell。。。那就折騰導出來的 create、insert語句吧。想想都頭大。是在沒必要完全用shell弄。
2. linux shell 腳本怎麼連oracle資料庫取數
在shell裡面執行sqlplus,大致如下
sqlplus username/password@sid << EOF >> xxxx.log
select field_name from table_name where ....;
exit;
EOF
然後從輸出log裡面分析出你要的值
3. 寫個shell腳本連接oracle資料庫查詢某表數據導出為txt文件,再發送到第三
1、簡單的單列
#!/bin/sh
sqlplus 'user001/12345678'<< EOF
set define off
set hea off
spool vip1.txt
select username from ACCOUNT where LEVEL=7;
spool off
quit;
EOF
sed -i 's/[ ]*//g' ~/vip1.txt
sed -i '/^$/d' ~/vip1.txt
sed -i '1d' ~/vip1.txt
sed -i '$d' ~/vip1.txt
scp -P22 ~/vip1.txt [email protected]:/root
2、復雜的多列
#!/bin/sh
cid=$1;
today=`date +%Y-%m-%d-%H.%M`
ym=`date +%Y%m`
ymd=`date -d -1days +%Y%m%d`
last_ym=`date -d last-month +%Y%m`
next_ym=`date -d next-month +%Y%m`
file=chat_recorder_${cid}_20140707-11.xls
if [[ $1 == '' ]];then
echo "Usage: $0 company_id "
exit 0;
fi
sqlplus 'user002/12345678' << EOF
set linesize 200
set term off verify off feedback off pagesize 999
set markup html on entmap ON spool on preformat off
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
spool ${file}
select a.*,b.* from recorder_${ym} a,t_${ym} b where a.company_id='$cid' and a.create_time between TO_DATE('2014-07-07 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and TO_DATE('2014-07-12 00:00:00', 'YYYY-MM-DD HH24:MI:SS') and a.chat_id=b.chat_id order by b.chat_id ;
spool off
quit;
EOF
sed -i '/select/d' $file
zip -r ${file}.zip $file
scp -P22 ${file}.zip [email protected]:/opt
4. 如何在shell腳本中嵌入Oracle資料庫操作
是不是要這樣腳本:
sqlplus-Ssystem/system<<EOF
setfeedbackoff
setheadingoff
setpagesize0
setlinesize200
setechooff
settermoutoff
spooltxt/fbfjmxb.txt
select*fromORD_PEO_TXNPCLWHERESUBSTR(TRIM(YJHM),1,1)='9'ANDTRUNC(CLDATE,'dd')=TRUNC(SYSDATE,'dd');
spooloff
exit;
EOF
既然能執行select語句,update,delete,執行過程和函數是沒有任何問題的。
5. 你好,我想寫個shell腳本連接oracle伺服器查詢某表數據並且導出到txt文本
使用shell調用sqlplus來執行sql語句,導出到文件可以通過spool命令指定文件,我從自己曾經寫的腳本截取一段給你示例吧,如果你熟悉shell編寫的話,很容易改造成自己需要的
參數1-6分別是表名,oracle用戶名,oracle密碼,oracle伺服器ip地址,oracle伺服器埠,oracle伺服器的服務名(如果不確定聯系DB管理員)
T_NAME=$1
USERID=$2
PASSWD=$3
IP=$4
PORT=$5
SERVICENAME=$6
DB_LINK_STR=$USERID/$PASSWD@$IP:$PORT/$SERVICENAME
sqlplus -S $DB_LINK_STR<<EOF
set HEADING OFF
SET ECHO OFF
SET FEEDBACK OFF
SET TERMOUT OFF
SET LINESIZE 1000
SET TRIMSPOOL ON
spool temp.out
select COLUMN_NAME||' '||DATA_TYPE||' '||DATA_LENGTH||' ',DATA_DEFAULT from user_tab_columns where table_name='$T_NAME' order by column_id;
spool off
exit
EOF
sed -i '/^$/d' temp.out
執行完畢後,就會出現temp.out文件,裡面是指定表的一些信息:列名,數據類型,數據長度和默認值,且以空格分隔
6. 怎麼用xshell給機器裝oracle
通過配置本地資料庫的tns配置文件實現:
去oracle安裝目錄下oracle\proct\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用記事本打開,里邊有遠程資料庫的tns連接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
7. 怎麼樣用shell做一個連接oracle資料庫的腳本
這個問題你可能通過查詢oracle的系統表,例如all_all_tables,用這些對象的列表生成一批資料庫刪除對象的語句,然後將這些語句存到文件,用sqlplus的文件參數執行這一批語句。
8. xshell連接不上oracle資料庫中的用戶
使用sqlplus連接oracle11g資料庫步驟如下所示:
方法一:
1、找到sqlplus,在開始菜單你安裝的oracle-》應用程序開發目錄下面;
2、點擊SQLPlus,彈出cmd;
3、輸入用戶名,還有密碼,密碼後面加上@資料庫實例名,登錄成功後界面如下所示;
方法二:
在開始-》運行(快捷鍵win+r),輸入cmd。彈出的黑色框中輸入:sqlplus用戶名/密碼@資料庫實例名;
9. linux 下沒裝oracle 怎麼在shell中連接其他機器的oracle
你如果安裝了Oracle的客戶端程序,可以使用sqlplus之類直接連接
如果沒有安裝,就只能telnet或ssh到遠程伺服器上,然後在對方伺服器上直接操作