當前位置:首頁 » 編程語言 » db2sql腳本編寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

db2sql腳本編寫

發布時間: 2023-03-07 09:28:39

A. db2查詢資料庫所有表的sql語句該怎樣寫

select name from sysibm.systables where type='T' and creator='DB2ADMIN'
type:資料庫表用T表示;資料庫視圖用V表示
creator:資料庫對象的創建者
select tabname from syscat.tables where tabschema = current schema ;// 獲取當前模式下面的所有用戶表

B. 請教高手:DB2 SQL腳本批量執行如何保存日誌問題

可以在命令編輯器或者Windows 的DB2 命令窗口或者 Linux 的shell 中執行SQL 腳本。在windows 的DB2 命令窗口或者 linux 的shell 中執行SQL語句,可以使用下面的命令執行script1.sql腳本:
db2 -t -v -f script1.sql -z script1.log
或者:
db2 –tvf script1.sql –z script1.log
在上面的命令中,
-t 表示語句使用默認的語句終結符——分號;
-v 表示使用冗長模式,這樣 DB2 會顯示每一條正在執行命令的信息;
-f 表示其後就是腳本文件;
-z 表示其後的信息記錄文件用於記錄屏幕的輸出,方便以後的分析(這是可選的,但我們建議使用該選項)。
當使用了-t選項而沒有標明語句終結符,則分號(;)會默認為語句的終結符。有時可能會出現使用另外的終結符的情況,例如用SQL PL 編寫的的腳本使用其它的符號而不是默認的分號,因為分號在SQL PL 是用於定義資料庫對象過程中的語句結束。

C. DB2資料庫,將表A中的數據復制到表B中,如何寫SQL

1、欄位要匹配(數量、類型);

INSERTINTOB(ID--逐一列出,避免對應不上
,...
)
SELECTID--需要新ID的話,換成自己的函數或者計算公式
,...
FROMA

2、若ID欄位是自增長的,要將自增長屬性關閉

D. 怎樣使用命令行執行DB2的SQL

一、准備工作
運行db2cmd或者db2cw打開DB2命令行處理器

進入SQL腳本存放目錄

用db2 connect to <dbname> user <username> using <password> 命令連接資料庫

用db2 set current schema <schema_name> 設置當前的SCHEMA,這個SCHEMA可以是未創建的,DB2會自動創建。
二、執行不同類型的SQL

1、在命令行執行簡單SQL命令

db2 <SQL語句內容>

2、在命令行執行SQL腳本文件

db2 -td; -cf <SQL腳本文件路徑> -l <輸出日誌文件路徑>

說明:-td; 指定語句結束標志。因為一般SQL都是以分號結尾,所以就寫成「-td;」。

-l <輸出日誌文件路徑> 是可選的。

3、在命令行執行DB2 存儲過程文件
db2 -td@ -f <SQL過程文件路徑> -l <輸出日誌文件路徑>

說明:-td@ 指定語句結束標志。因為一般SQL過程都是以@結尾,所以就寫成「-td@」。

-l <輸出日誌文件路徑> 是可選的。

E. DB2的SQL腳本如何定義變數,並賦值使用執行成功有重賞哦,謝謝

用存儲過程啊,給你個簡單的例子
CREATE PROCEDURE SPCARDTRACE
(
IN I_CARDNO VARCHAR(10)
)

-- 存儲過程功能 :
-- 創建人:
-- 創建日期:
-- 參數說明:
-- 01. : I_CARDNO 卡號
-- 02. :
-- 03. :

LANGUAGE SQL
SPECIFIC SPCARDTRACE
DYNAMIC RESULT SETS 1
MODIFIES SQL DATA

BEGIN
DECLARE V_CARDNO VARCHAR(10); --卡號
DECLARE V_EMPNAME VARCHAR(16); --持卡人
DECLARE V_CARDBALANCE DECIMAL(8,2); --卡余額
DECLARE V_HAPPENDATE INT;--統計時間
DECLARE V_MINTIME TIMESTAMP; --最小時間
DECLARE V_MAXTIME TIMESTAMP; --最大時間
DECLARE V_MINMONTH INT ;
DECLARE V_MAXMONTH INT ;
DECLARE V_ISSUECARDDATE TIMESTAMP; --發卡時間
DECLARE V_SUBSIDYMONEY DECIMAL(8,2);--補貼金額
DECLARE V_CONSUMEMONEY DECIMAL(8,2);--沖值金額
DECLARE V_PUTMONEY DECIMAL(8,2);--沖值金額
DECLARE V_OUTMONEY DECIMAL(8,2);--退款金額
DECLARE V_CHANGEMONEY DECIMAL(8,2);--改卡差額
DECLARE V_STRSQL VARCHAR(1000); --SQL
DECLARE CS CURSOR WITH RETURN TO CALLER FOR RETURNTABLE;

INSERT INTO TBCARDTRACE ( CARDNO,EMPNAME,CARDBALANCE,ISSUECARDDATE ,HAPPENDATE,
SUBSIDYMONEY,PUTMONEY,OUTMONEY ,CONSUMEMONEY,CHANGEMONEY )
VALUES (V_CARDNO,V_EMPNAME,V_CARDBALANCE,V_ISSUECARDDATE,V_HAPPENDATE,
V_SUBSIDYMONEY,V_PUTMONEY,V_OUTMONEY,V_CONSUMEMONEY,V_CHANGEMONEY);

END

F. DB2 命令行中如何執行sql腳本

無論是windows系統,還是linux或AIX
你可以在實例用戶下,先鍵入 db2 這個命令,進入到db2命令行,然再執行creat database mydb

或者

你可以在系統命令行下直接執行
db2 create database mydb

db2 "create database mydb"

G. 如何把DB2的數據直接導入SQL server中

1、在SQL Server中,在對應的資料庫中點擊右鍵然後選擇「任務」菜單下的「生成腳本」,連續點擊兩個「下一步」
2、在彈出的對話框中,在「選項」下面的框中找到「為伺服器版本編寫腳本」
3、把SQL Server修改成SQL Server 2000,然後再點擊下一步,把表選中,如有存儲過程,也需要把存儲過程選中,然後點擊下一步
4、全選存儲過程或者表,然後點擊「下一步」,再點擊「完成」
5、在新建的查詢窗口中生成了所有的SQL語句,把這些語句進行復制,然後在SQL Server 2000中對應資料庫的查詢分析器中進行執行,就把對應的表結構及存儲過程生成了。
6、再用SQL Server 2000中在對應資料庫中點擊右鍵,在「所有任務」對應的「導入數據」,輸入SQL Server 2005中伺服器的名稱或者IP地址
7、輸入SQL Server 2000中伺服器對應的名稱或者IP地址,然後默認的選擇進入「下一步」,全選所有的表,然後點擊兩個「下一步「,數據就可以導進來了。

H. LINUX下shell腳本如何執行 sql腳本 到DB2資料庫

1、在gedit中編寫.sh格式的文件,保存為a.sh。

I. 想請教下各路大神,linux下每天定時給db2資料庫做一個全庫壓縮備份的腳本,應該怎麼寫呢

備份命令的栗子:db2 backup db tt online to /db2home/db2 compress include logs
然後命令掛到crontab裡面就行了
db2一備份資料庫就幾乎不動了,慎重哈~(其實一周備份一次就差不多了)