當前位置:首頁 » 編程語言 » sql22001

sql22001

發布時間: 2022-09-06 07:49:40

A. 805插件已載入,命令行卻出現「未知命令808」,因而805插件無法操作,怎麼辦

操作資料庫流程中,遇到許多疑問,很多都與sql CODE和SQL State有關,現在把一個完整的SQLCODE和SQLState不正確信息和有關解釋作以下說明,一來可以自己參考,對DB2不正確自行找出原由
(聲明:這是搜集網上的資料得來的,細致出處不記得了)
sqlcode sqlstate 說明
格式說明:ErrorCode:-302 SQLState:22001
-------------------------------------------
000 00000 SQL語句成功完成
01xxx SQL語句成功完成,但是有警告
+012 01545 未限定的列名被解釋為一個有相互聯系的引用
+098 01568 動態SQL語句用分號結束
+100 02000 沒有找到滿足SQL語句的行
+110 01561 用DATA CAPTURE定義的表的更新操作不能發送到原來的子系統
+111 01590 為2型索引配置了SUBPAGES語句
+117 01525 要插入的值的個數不等於被插入表的列數
+162 01514 指定的表空間被置為檢查掛起狀態
+203 01552 運用非唯一的名字來處理命名的限定列
+204 01532 命名的對象未在DB2中定義
+206 01533 命名的列不在SQL語句中指定的任何錶中存在
+218 01537 因為SQL語句引用一個遠程對象,不能為該SQL語句執行Exp LAIN
+219 01532 命名的PLAN TABLE不存在
+220 01546 不正確定義PLAN TABLE,檢查命名列的定義
+236 01005 SQLDA中的SQLN的值至少應於所描述的列的個數一樣大
+237 01594 至少有一個被描述的列應該是單值類型,因此擴展的SQLVAR條目須要另外的空間
+238 01005 至少應有一個被描述的列是一個LOB,因此擴展的SQLVAR條目須要另外的空間
+239 01005 至少應有一個被描述的列應是單值類型,因此擴展的SQLVAR條目須要另外的空間
+304 01515 該值不能被分配給宿主變數,因為該值不再數據類型的范圍之內
+331 01520 不能被翻譯的字元串,因此被配置為NULL
+339 01569 由於與DB2 2.2版本的子系統連接,所以可能存在字元轉換疑問
+394 01629 運用優化提示來選擇訪問路徑
+395 01628 配置了無效的優化提示,原由代碼指定了為什麼,忽略優化提示
+402 01521 未知的位置
+403 01522 本地不存在CREAT ALIAS對象
+434 01608 在DB2未來揭曉的版本中將不支持指定的特徵,IBM建議你停止運用這些特徵
+445 01004 值被CAST函數截取
+462 01Hxx 由用戶定義的函數或存儲流程發出的警告
+464 01609 命名的存儲流程超出了它可能返回的查詢結果集的個數限定
+466 01610 指定由命名的存儲流程返回的查詢結果集的個數。成功完成
+494 01614 由存儲流程返回的結果集的個數超過了由ASSOCIATE LOCATORS語句指定的結果集定位器的個數
+495 01616 因為倒台SQL的成本估算超出了在ELST中指定的警告閥值,所以發出警告
+535 01591 請求一個主健的定位更新,或請求一個運用自我引出約束的表的刪除操作
+541 01543 命名外健是一個重復的引用約束
+551 01548 命名的授權ID缺少在命名的DB2對象上執行命名操作的許可權
+552 01542 命名的授權ID缺少執行命名操作的許可權

+558 01516 已經被授權該PUBLIC,因此WITH GRANT OPTION不能用
+561 01523 對ALTER REFERENCES INDEX 和TRIGGER特權,PUBLIC AT ALL LOCATION無效
+562 01560 因為GRANTEE已經擁有這些特權,所以一個或更多的特權被忽略
+585 01625 模式名指定了不止一次
+599 01596 沒有為長字元數據類型(BLOB,CLOB和DBCLOB)建立比較函數
+610 01566 由於建立了一個指定為DEFER YES的索引,指定的對象處於PENDING狀態,或者因為運用了

ALTER INDEX改動關鍵值的范圍,所以指定的對象處於PENDING狀態
+625 01518 因為刪除了主健索引,所以表定義被標注為不完整
+626 01529 刪除了增強 UNIQUE約束的索引,唯一性不在被增強
+645 01528 因為建立的索引中沒有包含NULL,所以WHERE NOT NULL被忽略
+650 01538 不能修改或者建立已命名的表為從屬表
+653 01551 在已指定的分區表空間中尚沒有建立指定的分區索引,所以分區索引不可得
+655 01597 為CREATE或ALTER STOGROUP語句指定特定或者非特定的卷ID,在DB2較新揭曉的版本中(版本6

以後)將不再支持他們
+658 01600 當建立目錄索引時,不能指定SUBPAGES語句,SUBPAGES將被忽略,並預設為1
+664 01540 分區索引的限定關鍵字超出了最大值
+738 01530 已命名的對象的修改可能像只讀系統中對象的改動要求一樣
+799 0157 SET語句中引用的特定寄存器不存在,將忽略 SET請求
+802 01519 數據溢出或者因除法異常而引起的數據異常不正確
+806 01553 ISOLATION(RR)與LOCKSIZE PAGE 沖突
+807 01554 由於十進制乘法導致溢出
+863 01539 連接成功,但是只支持SBCS
+2000 56094 SUBPAGES不等於1的1型索引不能成為數據共享環境中的緩沖池組依賴者
+2002 01624 因為指定的緩沖池不允許超高速緩存,GNPCACHE指定被忽略
+2007 01602 因為DB2子系統的參數禁用「提示(hiats)」所以不能指定優化提示
+30100 01558 分布式協議不正確被檢測到,提供原來的SQLCODE和SQLSTATE
-007 42601 SQL語句中由非法字元
-010 42603 字元串常量非正常終止;檢查到有遺漏的引號標志
-029 42601 須要INTO語句
-060 42815 某特定數據類型的長度或者標量規范無效
-084 42612 不能執行SQL語句,因為該語句對動態SQL無效或者對OS/390的DB2無效
-097 42601 在單位類型、用戶自定義的函數以及流程中不能運用帶有CAST的LONG VARCHAR或

LONGVARGRAPHIC
-101 54001 SQL語句超出了已確定的DB2限定:例如,表的數目太多,語句中的位元組太多
-102 54002 字元串常量太長
-103 42604 無效數學文字
-104 42601 SQL語句中遇到非法符號
-105 42604 無效的字元串格式;通常引用一個格式不正確的圖形字元串
-107 42622 對象名太長

-108 42601 RENAME語句中指定的名字有不正確,不能運用限定詞
-109 42601 指定了無效語句;例如CREATE VIEW不能包含ORDER BY 語句
-110 42606 遇到了無效的十六進制的文字
-111 42901 指定的列函數沒有給出列名
-112 42607 無效的列函數語法;列函數不能運行與其他的列函數之上
-113 42602 遇到無效字元
-114 42961 該語句的位置名稱必須與當前伺服器匹配,但是卻沒有匹配
-115 42601 因為比較運算符沒有伴著一個表達式或者列表,遇到了無效謂詞
-117 42802 待插入的數值的個數於被插入的行中的列數不相等
-118 42902 數據修改語句(UPDATE或DELETE)和FROM語句中的表和視圖命名不正當
-119 42803 HAVING語句中的列的列表與GROUP BY語句中的列列表不匹配
-120 42903 不允許WHERE語句、SET語句、VALUES語句或者SET ASSIGNMENT語句引用列函數
-121 42701 在INSERT或UPDATE語句中,某一列被非法引用了兩次
-122 42803 非法運用了列函數。因為沒有用於一個列函數的所有列不再GROUP BY語句中
-123 42601 特定位置的參數必須是一個常數或者一個關鍵詞
-125 42805 ORDERBY語句中指定了無效數字,該數字要麼小於1要麼大於選定的列數
-126 42829 不能為一個UPDATE語句指定ORDER BY語句
-127 42905 在子選擇中DISTINCT只能指定一次
-128 42601 SQL謂詞中NULL運用不當
-129 54004 SQL語句中包含的表多於15個
-130 22019 ESCAPE語句必須為一個字元
22025 無效的ESCAPE模式
-131 42818 LIKE謂詞只能用於字元數據
-132 42824 LIKE語句、ESCAPE語句、LOCATE函數或POSSTR函數中有無效運算對象
-133 42906 無效有關子查詢引用
-134 42907 大於255位元組的列被不正確運用
-136 54005 排序關鍵字的長度大於4000位元組
-137 54006 被連接的字元串太大;字元的最大值為32767;圖形的最大值為16382
-138 22011 SUBSTR列函數的第二個或第三個操作符無效
-142 42612 不支持的SQL語句。該語句可能在另外的RDBMS上有效,也有可能在其他的上下文中有效(例

如,VALUES只能在觸發器中出現)
-144 58003 指定的段號無效
-147 42809 某一源函數不能修改。要改動源函數,必須刪除該源函數並重新建立他
-148 42809 RENAME和ALTER不能執行。RENAME不能對視圖或者活動RI.ST表重新命名。ALTER不能用於改動列的長度,因為該列參與了RI、

一個用戶退出程序、全局的臨時表或打開DATACAPTURE CHANGES表的列
-150 42807 觸發活動的INSERT,UPDATE或DELETE語句中指定了無效的視圖更新或一個無效的轉換表
-151 42808 試圖更新一個不可更新的視圖的列、一個DB2 CATALOG表的列或者一個ROWID列
-152 42809 DROP CHECK試圖刪除一個參照約束,或者DROP FOREIGN試圖刪除一個檢查約束
-153 42908 無效的視圖建立請求,必須為旋轉列表中列出的列出的未命名的列或者重復的列提供一個名字

-154 42909 不能用UNION、UNION ALL或者一個遠程表建立視圖
-156 42809 在視圖上建立索引是非法的,或者在ALTER TABLE,CREATE TRIGGER,DROP TABLE或LOCKTABLE

語句上指定一個不是表的其他對象這是無效的
-157 42810 必須在FOREIGN KEY語句中指定一個表名
-158 42811 視圖的列和選擇列表中的列不相匹配
-159 42089 無效DROP或COMMENT ON語句
-160 42813 對該視圖的WITH CHECK OPTION無效
-161 44000 正被更新的視圖WITH CHECK OPTION語句使得這行不能被插入或更新
-164 42502 用戶沒有建立這個視圖的許可權
-170 42605 標量函數指定了無效的參數個數
-171 42815 標量函數指定了無效的數據類型長度或者無效數值
-173 42801 在非只讀型的游標上不能指定隔離級別UR
-180 22007 DATE、TIME、TIMESTAMP值的字元串表示法的語法不對
-181 22001 不是有效的DATE、TIME、TIMESTAMP值
-182 42816 在算術表達式中的日期/時間值無效
-183 22008 在算術表達式中返回的日期/時間值的結果不在有效值的范圍內
-184 42610 沒有正確運用日期/時間值的參數標記
-185 57008 沒有定義本定的日期/時間出口
-186 22505 改動本定的日期/時間出口引發這個程序的長度無效
-187 22506 MVS返回無效的當前日期/時間
-188 22503 字元串表示無效
-189 22522 指定的編碼字元集的ID無效或沒有定義
-190 42837 不能象所設定的那樣改動(ALTER)列。只能改動(ALTER)VARCHAR列的長度
-191 22504 字元串中包含了無效的混合數據
-197 42877 當兩個或多個表被聯合在一起排序時,限定的列名不能在ORDER BY語句中運用
-198 42617 試圖對空的字元串揭曉一個PREPARE或EXECUTE IMMEDIATE語句
-199 42601 SQL語句中運用了非法關鍵詞
-203 42702 模糊列引用
-204 42704 沒有定義的對象名
-205 42703 指定的表的列名無效
-206 42703 列名沒有在FROM語句所引用的任何錶中,或者沒有在定義觸發器所在的表中
-208 42707 不能ORDER BY指定列,應為該列不在選擇列表中
-212 42712 指定的表名在觸發器中不允許多次運用,只能運用一次
-214 42822 DISTINCT、ORDER BY 引起的無效表達式
-219 42704 因為PLAN_TABLE不存在,Exp LAIN不能執行
-220 55002 遇到無效的PLAN_TABLE列
-221 55002 如果為PLAN_TABLE定義了可供選擇的列,那麼,必須定義所有的列
-229 42708 指定的現場找不到
-240 428B4 LOCK TABLE語句的PART子句無效
-250 42718 沒有定義本地位置名
-251 42602 記號無效
-300 22024 宿主變數或參數中的字元串不是以NULL為終止
-301 42895 無效的宿主變數數據類型
-302 22001 輸入的變數值對指定的列無效

-303 42806 因為數據類型不兼容,不能分配數值
-304 22003 因為數據超出了范圍,不能分配數值
-305 22002 沒有NULL指示符變數
-309 22512 因為引用的宿主變數被配置成NULL,所以謂詞無效
-310 22501 十進制的宿主變數或參數包含非十進制數據
-311 22501 輸入的宿主變數長度無效,或者時負值或者太大
-312 42618 沒有定義宿主變數或者宿主變數不能用
-313 07001 宿主變數的個數不等於參數標識的個數
-314 42714 模糊的宿主變數引用
-327 22525 在最後分區的關鍵字范圍內,不能插入行
-330 22021 不能成功的翻譯字元串
-331 22021 字元串不能分配到宿主變數,因為其不能成功的被翻譯
-332 57017 不能為兩個命名的編碼字元集的ID定義翻譯准則
-333 56010 子類型無效導致翻譯失敗
-338 42972 ON語句無效,必須引用連接的列
-339 56082 訪問DB2 2.2版本的子系統被拒絕,原由時ASCII到EBCDIC翻譯不能執行
-350 42962 無效的大對象規范
-351 56084 SELECT列表中有不支持的數據類型
-352 56084 輸入列表中有不支持的數據類型
-355 42993 LOB列太大,以至不能被記錄在日誌中
-372 428C1 每個表只允許有一個ROWID列
-390 42887 在上下文中指定的函數無效
-392 42855 自從前一次FETCH以來,指定游標的SQLDA已被不恰當的改動
-396 38505 在最後的訪問流程中,視圖執行SQL語句
-397 428D3 在某一列上不恰當的指定了GENERATED因為該列不是ROWID數據類型
-398 428D2 為某一個宿主變數請求LOCATOR,但是該宿主變數不是一個LOB
-399 22511 在INSERT語句中為ROWID列指定的值無效
-400 54027 在DB2編目中定義的用戶自定義索引不能超過100個
-401 42818 算術操作符或比較操作符的操作對象不是兼容的
-402 42819 算術函數不能用於字元或日期時間數據
-404 22001 SQL語句指定的字元串太長
-405 42820 數值文字超出了范圍
-406 22003 計算出的或者倒出的數值超出了范圍
-407 23502 不能把NULL值插到定義為NOT NULL的列中
-408 42821 數值不能被更新或插入,因為他與列的數據類型不兼容
-409 42607 COUNT函數指定的運算對象無效
-410 42820 浮點文字筆30個字元的最大允許長度長
-411 56040 CURRENT SQLID運用無效
-412 42823 在子查詢的選擇列表中遇到了多個列
-413 22003 當轉換為一個數字型數據類型時,數據溢出
-414 42824 LIKE謂詞不能運行於用數字或日期時間類型定義的列
-415 42825 為UNION操作指定的選擇列表不是聯合兼容的
-416 42907 包含UNION操作符的SQL語句不允許有長的字元串列
-417 42609 兩參數標識符作為運算對象被指定在同一謂詞的兩邊
-418 42610 參數標識符運用無效
-419 42911 十進制除法無效
-420 22018 字元串自變數值不符合函數的要求
-421 42826 UNION操作的選擇列表中沒有提供相同數目的列

-423 0F001 為LOB或結果集定位器指定的值無效
-426 2D528 在不允許更新的運用 伺服器不允許執行COMMIT語句
-427 2D529 在不允許更新的運用 伺服器不允許執行ROLLBACK語句
-430 38503 在用戶自定義的函數或存儲流程中遇到了不正確
-433 22001 指定的值太長
-435 428B3 無效的運用 定義的SQLSTATE
-438 xxxxx 運用了RAISE_ERROR函數的運用 發出了一個不正確
-440 42884 存儲流程或用戶自定義函數的參數列表參數個數於預期的個數不匹配
-441 42601 與標量函數一起運用 DISTINCT或ALL是不正確的用法
-443 42601 指定的外部函數返回不正確的SQLSTATE
-444 42724 與被稱為存儲流程或用戶自定義函數有關的程序不能找到
-449 42878 對存儲流程或用戶自定義的函數,CREATE或ALTER語句不正確(缺失EXTERNAL NAME 子句)
-450 39501 存儲流程或用戶自定義函數寫入存儲器的值超過了參數聲明的長度
-451 42815 CREATE FUNCTION中指定了不正確的數據類型
-453 42880 用戶自定義函數中的RETURNS語句無效
-454 42723 指定的函數識別標記與已存在的另一函數的識別標記沖突
-455 42882 模式名不比配
-456 42710 為用戶自定義函數指定的函數名已經存在
-457 42939 用戶自定義函數或用戶自定義類型正試圖運用系統中定義的函數或者類型所用的名稱
-458 42883 沒有找到函數
-463 39001 特定的外部常式返回無效的SQLSTATE
-469 42886 參數定義為OUT或INOUT的CALL語句必須提供宿主變數
-470 39002 指定了NULL參數,但是該常式卻不支持NULL
-471 55023 存儲流程或用戶自定義函數失敗:提供原由代碼
-472 24517 外部的函數程序使游標處於打開狀態
-473 42918 用戶自定義數據類型命名不能和系統定義的數據類型一樣
-475 42866 結果類型不能被轉換成RETURNS類型
-476 42725 在其模式中該函數不是獨一無二的
-478 42893 不能DROP或REVOKE特定的對象,因為其他對象依賴於該對象
-480 51030 直到存儲流程已經被CALL後,DESCRIBE PROCEDURE和ASSOCIATE LOCATORS才能被揭曉
-482 51030 存儲流程不返回到任何一個定位器
-483 42885 CREATE FUNCTION語句中的參數個數與源函數中的參數個數不匹配
-487 38001 選擇了NO SQL選項建立指定的存儲流程或用戶自定義函數,但卻視圖揭曉 SQL語句
-491 42601 CREATE FUNCTION語句無效,因為該語句沒有RETURNS語句或者因為該語句沒有指定有效的SOURCE或者EXTERNAL語句
-492 42879 指定函數的指定參數的個數有不正確
-495 57051 語句的估計處理器成本超出了資源限定
-496 51033 語句不能執行,因為當前伺服器與調用存儲流程的伺服器不同
-497 54041 指定的資料庫超過了32767 OBID的上限,或者CREATE DATABASE語句使之達到了32511DBID的上限

B. 執行load表數據時,提示:22001錯誤;但找到那條數據,單獨插入表是沒問題的,請問如何才能解決呢

這個可能是你的這條記錄與同行的其他數據拼接在一起插入第一行了,你可以吧數據(excel形式最好)保存為csv用逗號隔開的形式,DB2導入這種形式的數據是最好最方便的

C. 資料庫突然當了,重啟提示db2nodes.cfg line number"1",Reason code"3"

1、打開命令行窗口#db2cmd2、打開控制中心#db2cmddb2cc3、打開命令編輯器db2cmddb2ce=====操作資料庫命令=====4、啟動資料庫實例#db2start5、停止資料庫實例#db2stop如果你不能停止資料庫由於激活的連接,在運行db2stop前執行db2forceapplicationall就可以了/db2stopforce6、創建資料庫#db2createdb[dbname]7、連接到資料庫#db2connectto[dbname]user[username]using[password]8、斷開資料庫連接#db2connectreset9、列出所有資料庫#db2listdbdirectory10、列出所有激活的資料庫#db2listactivedatabases11、列出所有資料庫配置#db2getdbcfg12、刪除資料庫#db2dropdatabase[dbname](執行此操作要小心)如果不能刪除,斷開所有資料庫連接或者重啟db2=========操作數據表命令==========13、列出所有用戶表#db2listtables14、列出所有系統表#db2listtablesforsystem15、列出所有表#db2listtablesforall16、列出系統表#db2listtablesforsystem17、列出用戶表#db2listtablesforuser18、列出特定用戶表#db2listtablesforschema[user]19、創建一個與資料庫中某個表(t2)結構相同的新表(t1)#db2createtablet1liket220、將一個表t1的數據導入到另一個表t2#db2"insertintot1select*fromt2"21、查詢表#db2"select*fromtablenamewhere"22、顯示表結構#db2describetabletablename23、修改列#db2altertable[tablename]altercolumn[columname]setdatatypevarchar(24)======腳本文件操作命令=======24、執行腳本文件#db2-tvfscripts.sql25、幫助命令*查看命令幫助#db2?db2start*查看錯誤碼信息#db2?22001*memo:詳細命令請使用"db2?"進行查看。=========================26、備份資料庫#db2backupdb備註:執行以上命令之前需要斷開資料庫連接27、在線備份資料庫#db2-v"G"28、恢復資料庫#db2restoredb29、在線恢復資料庫#db2""#db2""30、導出數據文件#db2moveexport[-sn][-tn]31、導入數據文件#db2moveimport32、獲取db2資料庫管理配置環境信息#db2getdbmcfg33、.獲取db2某個資料庫資料庫管理配置環境信息#db2getdbcfgfor或者:連接至某個資料庫以後執行db2getdbcfg34、更改db2日誌空間的大小備註:以下命令為了防止db2資料庫過份使用硬碟空間而設,僅用於開發者自己機器上的db2,如果是伺服器,則參數需要修改。#;如果頁大小是4KB,則以上命令創建3個100M的日誌文件,佔用300MB硬碟空間。25600*4KB=102400KB。35、創建臨時表空間#SING(FILE'D:\DB2_TAB\STMASPACE.F1'10000)EXTENTSIZE25636、獲取資料庫管理器的快照數據#db2–vgetsnapshotfordbm37、顯示進行程號#db2listapplicationsshowdetail===================================================一、載入數據:1、以默認分隔符載入,默認為「,」號db2"importfrombtpoper.txtofdelinsertintobtpoper"2、以指定分隔符「|」載入db2"importfrombtpoper.txtofdelmodifiedbycoldel|insertintobtpoper"二、卸載數據:1、卸載一個表中全部數據db2"exporttobtpoper.txtofdelselect*frombtpoper"db2"exporttobtpoper.txtofdelmodifiedbycoldel|select*frombtpoper"2、帶條件卸載一個表中數據db2"exporttobtpoper.txtofdelselect*frombtpoperwherebrhid='907020000'"db2"exporttocmmcode.txtofdelselect*fromcmmcodewherecodtp='01'"db2"exporttocmmcode.txtofdelmodifiedbycoldel|select*fromcmmcodewherecodtp='01'"三、查詢數據結構及數據:db2"select*frombtpoper"db2"select*frombtpoperwherebrhid='907020000'andoprid='0001'"db2"selectoprid,oprnm,brhid,passwdfrombtpoper"四、刪除表中數據:db2"deletefrombtpoper"db2"deletefrombtpoperwherebrhid='907020000'orbrhid='907010000'"五、修改表中數據:db2"updatesvmmstsetprtlines=0wherebrhid='907010000'andjobtp='02'"db2"updatesvmmstsetprtlines=0wherejobtp='02'orjobtp='03'"六、聯接資料庫db2connecttobtpdbs七、清除資料庫聯接db2connectreset斷開資料庫連接db2terminate斷開資料庫連接db2forceapplicationsall斷開所有資料庫連接八、備份資料庫1、db2backupdbbtpdbs2、db2movebtpdbsexportdb2look-dbtpdbs-e-x[-a]-ocrttbl.sql九、恢復資料庫1、、db2-tvfcrtdb.sqlcrtdb.sql文件內容:createdbbtpdbson/db2catalogdb2-stvfcrttbl.sqldb2movebtpdbsimport十、DB2幫助命令:db2?db2?restroedb2?sqlcode(例:db2?sql0803)註:code必須為4位數,不夠4位,前面補0十一、bind命令:將應用程序與資料庫作一捆綁,每次恢復資料庫後,建議都要做一次bind(1)db2bindbr8200.bnd(2)/btp/bin/bndall/btp/bnd/btp/bin/bndall/btp/tran/bnd十二、查看資料庫參數:十三、修改資料庫參數:ILSIZ5120改完後,應執行以下命令使其生效:db2stopdb2start補充:db2setschemabtp修改當前模式為"btp"db2listtablespacesshowdetail查看當前資料庫表空間分配狀況查看tablespaceid=2使用容器所在目錄列出所有資料庫db2listactivedatabases列出所有活動的資料庫db2listtablesforall列出當前資料庫下所有的表db2listtablesforschemabtp列出當前資料庫中schema為btp的表db2listtablespacesshowdetail顯示資料庫空間使用情況db2listpackagesforalldb2"importfromtab76."db2"createtableachact_tlikeachact"db2"renametableachact_ttoachact"db2"insertintoachact_tselect*fromachactwheretxndt>=(=achact.actno)"刪除一個實例:#cd/usr/lpp/db2_07_01/instance#./db2idropInstName列出所有DB2實例:#cd/usr/lpp/db2_07_01/bin#./db2ilist為資料庫建立編目$db2catalogdbbtpdbson/db2catalog取消已編目的資料庫btpdbs$db2uncatalogdbbtpdbs查看版本#db2level顯示當前資料庫管理實例$db2getinstance設置實例系統啟動時是否自動啟動。$db2iauto-on自動啟動$db2iauto-off不自動啟動資料庫優化命令:reorg、runstats當資料庫經過一段時間使用,數據空間會變得越來越龐大。一些delete掉的數據仍存放在資料庫中,佔用數據空間,影響系統性能。因此需要定期運行reorg、runstats命令,清除已delete的數據,優化數據結構。db2reorgtable表名db2runstatsontable表名withdistributionandindexesall因為要優化的表比較多,所以在/btp/bin目錄下提供了一個sh程序runsall,可在當天業務結束後,運行runsall,對資料庫進行優化在DB2的開發過程中,貫穿整個開發過程還有很重要的一部分工作就是資料庫的維護;對於維護一個龐大信息系統來說是非常必要的;留一份簡易的維護手冊,以備不時之需;以下收集到的部分維護命令,以饗我們的維護工程師和項目經理。=================================================================38、更改db2日誌空間的大小備註:以下命令為了防止db2資料庫過份使用硬碟空間而設,僅用於開發者自己機器上的db2,如果是伺服器,則參數需要修改。#;如果頁大小是4KB,則以上命令創建3個100M的日誌文件,佔用300MB硬碟空間。25600*4KB=102400KB。39、創建臨時表空間#SING(FILE'D:\DB2_TAB\STMASPACE.F1'10000)EXTENTSIZE25640、創建表空間rem創建緩沖池空間8K#db2connecttogather#創建表空間:STMArem必須確認路徑正確remD:\DB2Container\Stma#db2droptablespacestma#('D:\DB2Container\Stma')EXTENTSIZE8OVERHEAD10.5PREFETCHSIZE8TRANSFERRATE0.#db2connectreset41、將暫掛的數據恢復到前滾狀態#、備份表空間#BACKUPDATABASEYNDCTABLESPACE(USERSPACE1)TO"D:\temp"、創建db2工具資料庫#、如何進行增量/差量備份增量:上一次完整備份至本次備份之間增加的數據部分;差量(delta):上次備份以來(可能是完整備份、增量備份或者差量備份)至本次備份之間增加的數據部分;45、更新所有表的統計信息#db2-vconnecttoDB_NAME#db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"#db2-#db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"#db2-vterminate46、對一張表運行統計信息#db2-vrunstatsontableTAB_NAMEandindexesall47、查看是否對資料庫執行了RUNSTATS#db2-v"selecttbname,nleaf,nlevels,stats_timefromsysibm.sysindexes"48、更改緩沖池的大小緩沖池中,當syscat.bufferpools的npages是-1時,由資料庫的配置參數bufferpage控制緩沖池的大小。將npages的值更改為-1的命令:#db2-vconnecttoDB_NAME#db2-vselect*fromsyscat.bufferpools#db2--1#db2-vconnectreset#db2-vterminate更改資料庫配置參數BufferPages的命令如下:#db2-_value#db2-vterminate49、看資料庫監視內容列表#db2-vgetmonitorswitches50、打開某個資料庫監視內容#db2-、獲取資料庫快照#db2-vgetsnapshotforalldatabases>snap.out#db2-vgetsnapshotfordbm>>snap.out#db2-vgetsnapshotforallbufferpools>>snap.out#db2-vterminate52、重置資料庫快照#db2-vresetmonitorall53、計算緩沖池命中率理想情況下緩沖池命中率在95%以上,計算公式如下:(1-((bufferpooldataphysicalreads+bufferpoolindexphysicalreads)/(bufferpooldatalogicalreads+poolindexlogicalreads)))*100%=========資料庫實例========================54、創建db2實例#db2icrt55、刪除db2實例#db2idrop56、設置當前db2實例#setdb2intance=db257、顯示db2擁有的實例#db2ilist58、恢復離線增量備份資料庫的命令#:\backup\autobak\db2TAKENAT2006031423201559、創建樣本資料庫在unix平台,使用:#sqllib/bin/db2sampl在windows,os/2平台,使用:db2sample,e是可選參數,指定將創建資料庫的驅動器60、設置聯合資料庫為可用(默認聯合資料庫不可用)#、列出資料庫中所有的表#db2listtables62、數據遷移方法1export腳本示例##db2"exporttoaa1.ixfofixfselect*fromtable1"#db2"exporttoaa2.ixfofixfselect*fromtable2"#db2connectresetimport腳本示例##db2"loadfromaa1."#db2"loadfromaa2."#db2connectreset

D. 有如下學生資料庫:學生關系S,課程關系C,學生選課關系SC和教師關系T,分別如下:

1.
select Sname,Sdept from S where Ssex='男' and Sage >= 20

2.
select S.Sname,C.Cpno,T.Tname,SC.Grade from S,C,SC,T
where S.Sno=SC.Sno and SC.Cno=C.Cno and C.Tno=T.Tno
and SC.Grade<60

3.
select S.Sno,S.Sname,C.Cpno,SC.Cno,SC.Grade from S,C,SC,T
where S.Sno=SC.Sno and SC.Cno=C.Cno and C.Tno=T.Tno
and S.Sclass=『22001』

E. SQL Server將截斷字元串或二進制數據。

你是日期不符合任何規定格式,去掉星期三就行了。
SQL SERVER能識別的格式如下:
mon dd yyyy hh:miAM(或 PM)
mm/dd/yyyy
yy.mm.dd
dd/mm/yy
dd.mm.yy
dd-mm-yy
dd mon yy
mon dd, yy
hh:mm:ss
mon dd yyyy hh:mi:ss:mmmAM(或 PM)
mm-dd-yy
yy/mm/dd
yymmdd
dd mon yyyy hh:mm:ss:mmm(24h)
hh:mi:ss:mmm(24h)
yyyy-mm-dd hh:mm:ss[.fff]
yyyy-mm-dd hh:mm:ss[.fff]
yyyy-mm-dd Thh:mm:ss:mmm(不含空格)
dd mon yyyy hh:mi:ss:mmmAM
dd/mm/yy hh:mi:ss:mmmAM

F. 如何對db2中的資料庫進行數據分析

1、 打開命令行窗口
#db2cmd
2、 打開控制中心
# db2cmd db2cc
3、 打開命令編輯器

db2cmd db2ce
=====操作資料庫命令=====

4、 啟動資料庫實例
#db2start

5、 停止資料庫實例
#db2stop

如果你不能停止資料庫由於激活的連接,在運行db2stop前執行db2
force application all就可以了 /db2stop force
6、 創建資料庫
#db2 create db
[dbname]
7、 連接到資料庫
#db2 connect to [dbname] user [username] using
[password]
8、 斷開資料庫連接
#db2 connect reset
9、 列出所有資料庫
#db2 list
db directory

10、 列出所有激活的資料庫
#db2 list active databases
11、
列出所有資料庫配置
#db2 get db cfg
12、 刪除資料庫
#db2 drop database [dbname]

(執行此操作要小心)
如果不能刪除,斷開所有資料庫連接或者重啟db2

=========操作數據表命令==========

13、 列出所有用戶表
#db2 list tables
14、列出所有系統表
#db2 list tables for
system
15、列出所有表
#db2 list tables for all
16、 列出系統表
#db2 list
tables for system
17、列出用戶表
#db2 list tables for user
18、 列出特定用戶表

#db2 list tables for schema [user]
19、 創建一個與資料庫中某個表(t2)結構相同的新表(t1)

#db2 create table t1 like t2
20、 將一個表t1的數據導入到另一個表t2
#db2 "insert
into t1 select * from t2"
21、 查詢表
#db2 "select * from table name where
..."
22、 顯示表結構
#db2 describe table tablename
23、 修改列
#db2
alter table [tablename] alter column [columname] set data type varchar(24)

======腳本文件操作命令=======
24、 執行腳本文件
#db2 -tvf scripts.sql
25、幫助命令

* 查看命令幫助
#db2 ? db2start
* 查看錯誤碼信息
#db2 ? 22001
* memo:
詳細命令請使用"db2 ? <command>"進行查看。
=========================
26、備份資料庫

#db2 backup db <db name>
備註:執行以上命令之前需要斷開資料庫連接

27、在線備份資料庫

#db2 -v "BACKUP DATABASE <database name> ONLINE TO <path> WITH 2
BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING"
28、恢復資料庫
#db2
restore db <source db name>

29、在線恢復資料庫
#db2 "RESTORE DB
<database name> TO <db path> LOGTARGET <logpath> WITHOUT
PROMPTING"
#db2 "ROLLFORWARD DB <database name> TO END OF LOGS AND
STOP" ...
30、導出數據文件

#db2move <db name> export

[-sn
<模式名稱,一般為db2admin>]
[-tn <表名,多個之間用逗號分隔>]
31、導入數據文件

#db2move <db name> import
32、獲取db2資料庫管理配置環境信息
#db2 get dbm cfg

33、.獲取db2某個資料庫資料庫管理配置環境信息
#db2 get db cfg for <db name>

或者:連接至某個資料庫以後執行db2 get db cfg

34、更改db2日誌空間的大小

備註:以下命令為了防止db2資料庫過份使用硬碟空間而設,僅用於開發者自己機器上的db2,如果是伺服器,則參數需要修改。

#db2
UPDATE DB CFG FOR <db name> USING logretain OFF logprimary 3 logsecond 2
logfilsiz 25600;

如果頁大小是4KB,則以上命令創建3個100M的日誌文件,佔用300MB硬碟空間。25600*4KB=102400KB。
35、創建臨時表空間

#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY
DATABASE USING (FILE 'D:\DB2_TAB\STMASPACE.F1' 10000)
EXTENTSIZE 256

36、獲取資料庫管理器的快照數據
#db2 –v get snapshot for dbm
37、顯示進行程號
#db2
list applications show detail

===================================================
一、載入數據:
1、
以默認分隔符載入,默認為「,」號
db2 "import from btpoper.txt of del insert into btpoper"

2、 以指定分隔符「|」載入
db2 "import from btpoper.txt of del modified by coldel|
insert into btpoper"
二、卸載數據:
1、 卸載一個表中全部數據
db2 "export to
btpoper.txt of del select * from btpoper"
db2 "export to btpoper.txt of del
modified by coldel| select * from btpoper"
2、 帶條件卸載一個表中數據
db2 "export to
btpoper.txt of del select * from btpoper where brhid='907020000'"
db2
"export to cmmcode.txt of del select * from cmmcode where codtp='01'"
db2
"export to cmmcode.txt of del modified by coldel| select * from cmmcode where
codtp='01'"
三、查詢數據結構及數據:
db2 "select * from btpoper"
db2 "select *
from btpoper where brhid='907020000' and oprid='0001'"
db2 "select
oprid,oprnm,brhid,passwd from btpoper"
四、刪除表中數據:
db2 "delete from
btpoper"
db2 "delete from btpoper where brhid='907020000' or
brhid='907010000'"
五、修改表中數據:
db2 "update svmmst set prtlines=0 where
brhid='907010000' and jobtp='02'"
db2 "update svmmst set prtlines=0 where
jobtp='02' or jobtp='03'"
六、聯接資料庫
db2 connect to btpdbs
七、清除資料庫聯接

db2 connect reset 斷開資料庫連接
db2 terminate 斷開資料庫連接
db2 force
applications all 斷開所有資料庫連接
八、備份資料庫
1、 db2 backup db btpdbs
2、
db2move btpdbs export
db2look -d btpdbs -e -x [-a] -o crttbl.sql
九、恢復資料庫

1、 db2 restore db btpdbs without rolling forward
2、 db2 -tvf crtdb.sql

crtdb.sql文件內容:create db btpdbs on /db2catalog
db2 -stvf crttbl.sql

db2move btpdbs import
十、DB2幫助命令:
db2 ?
db2 ? restroe
db2 ?
sqlcode (例:db2 ? sql0803) 註:code必須為4位數,不夠4位,前面補0

十一、bind命令:將應用程序與資料庫作一捆綁,每次恢復資料庫後,建議都要做一次bind
(1) db2 bind br8200.bnd

(2) /btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd

十二、查看資料庫參數:
db2 get dbm cfg
db2 get db cfg for btpdbs

十三、修改資料庫參數:
db2 update db cfg for btpdbs using LOGBUFSZ 20
db2
update db cfg for btpdbs using LOGFILSIZ 5120
改完後,應執行以下命令使其生效:
db2 stop

db2 start

G. sql插入中文出現問題

A. 字元編碼:

逗使用命令行方式登陸到MySQL伺服器, 建立一個資料庫,資料庫編碼設為UTF-8。此時,如果直接在命令行窗口使用insert語句插入中文,就遇到類似 ERROR 1406 (22001): Data too long for column 'name' at row 1 錯誤。乍一看,是欄位長度引起的問題,但是實際是字元編碼的問題。可是嘗試以下解決方法:
1、在Linux中,使用終端方式登陸MySQL伺服器,運行以下命令:
set names utf8;
該命令將終端的字元編碼設為了UTF-8。此後再插入資料庫中的內容都會按照UTF-8的編碼來處理。
注意:在Linux中,終端方式中直接插入中文內容,可能並不會出現1406錯誤,但是這時插入的數據
是按照系統的默認編碼進行處理。因此對編碼為UTF-8的資料庫,在顯示數據的地方可能會出現亂碼。

2、在Windows下,命令行窗口不支持UTF-8編碼,所以使用逗set names utf8;地不會達到轉化中文的
效果。但是這個問題還是可以解決的:
(1)使用默認編碼建立資料庫。這種情況下就可以直接輸入中文了,但是相應的問題,就是會
失去UTF-8編碼的靈活性。特別是不利於軟體的國際化。
(2)放棄命令行窗口登錄MySQL,使用圖形化客戶端。客戶端工具可以MySQL的官方網站上找到。地

B. Mysql配置文件:
逗在my.ini里找到sql- mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'把其中 的STRICT_TRANS_TABLES,去掉,或者把sql- mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION注釋掉,然 後重啟mysql就ok了地

H. db2插入數據 到底在什麼情況下會發生右截斷 22001

有沒有可能是字元集的問題。

不同的資料庫使用不同字元集,那麼在一個資料庫中同樣長度的數據(字串)到另一個資料庫中,因為 位元組 長度不同就出現截斷的問題了?

I. MySQL插入中文時出現ERROR 1406 (22001): Data too long for column 'name' at row 1

先使用命令set
names
gbk;再試試那條SQL語句。另附:
---------------------------------------------------------------------------------------------------
mysql的出錯代碼表,根據mysql的頭文件mysql/include/mysqld_error.h整理而成
1005:創建表失敗
1006:創建資料庫失敗
1007:資料庫已存在,創建資料庫失敗
1008:資料庫不存在,刪除資料庫失敗
1009:不能刪除資料庫文件導致刪除資料庫失敗
1010:不能刪除數據目錄導致刪除資料庫失敗
1011:刪除資料庫文件失敗
1012:不能讀取系統表中的記錄
1020:記錄已被其他用戶修改
1021:硬碟剩餘空間不足,請加大硬碟可用空間
1022:關鍵字重復,更改記錄失敗
1023:關閉時發生錯誤
1024:讀文件錯誤
1025:更改名字時發生錯誤
1026:寫文件錯誤
1032:記錄不存在
1036:數據表是只讀的,不能對它進行修改
1037:系統內存不足,請重啟資料庫或重啟伺服器
1038:用於排序的內存不足,請增大排序緩沖區
1040:已到達資料庫的最大連接數,請加大資料庫可用連接數
1041:系統內存不足
1042:無效的主機名
1043:無效連接
1044:當前用戶沒有訪問資料庫的許可權
1045:不能連接資料庫,用戶名或密碼錯誤
1048:欄位不能為空
1049:資料庫不存在
1050:數據表已存在
1051:數據表不存在
1054:欄位不存在
1064
處理控制請求時,服務出現意外情況。
1065:無效的SQL語句,SQL語句為空
1081:不能建立Socket連接
1114:數據表已滿,不能容納任何記錄
1116:打開的數據表太多
1129:資料庫出現異常,請重啟資料庫
1130:連接資料庫失敗,沒有連接資料庫的許可權
1133:資料庫用戶不存在
1141:當前用戶無權訪問資料庫
1142:當前用戶無權訪問數據表
1143:當前用戶無權訪問數據表中的欄位
1146:數據表不存在
1147:未定義用戶對數據表的訪問許可權
1149:SQL語句語法錯誤
1158:網路錯誤,出現讀錯誤,請檢查網路連接狀況
1159:網路錯誤,讀超時,請檢查網路連接狀況
1160:網路錯誤,出現寫錯誤,請檢查網路連接狀況
1161:網路錯誤,寫超時,請檢查網路連接狀況
1062:欄位值重復,入庫失敗
1169:欄位值重復,更新記錄失敗
1177:打開數據表失敗
1180:提交事務失敗
1181:回滾事務失敗
1203:當前用戶和資料庫建立的連接已到達資料庫的最大連接數,請增大可用的資料庫連接數或重啟資料庫
1205:加鎖超時
1211:當前用戶沒有創建用戶的許可權
1216:外鍵約束檢查失敗,更新子表記錄失敗
1217:外鍵約束檢查失敗,刪除或修改主表記錄失敗
1226:當前用戶使用的資源已超過所允許的資源,請重啟資料庫或重啟伺服器
1227:許可權不足,您無權進行此操作
1235:MySQL版本過低,不具有本功

J. 如何在mysql配置文件里將sql-mode修改為NO_AUTO_CREATE_USER

1.用sql工具執行show variables like『%sql_mode%』

2.如果重啟之後不成功, 注意檢查你的my.ini 或者 my.cnf 有沒改對,是不是有多個同名字的配置文件, 也有可能叫sql-mode 或sql_mode 注意中間的『-』 或 『_』

熱點內容
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:170
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734