db2sql長度
① DB2中建立存儲過程的詳細參數和語法
DECLARE CHOICE2 CURSOR WITH RETURN TO CALLER FOR --聲明游標 CHOICE2
SELECT COMPANYID,DEPTID,SEQID,SUBMITTIME,SUBMITDATE,
B.GRADEDESC HYEAR,PRODUCTID,PRODUCTCODE,PRODUCTDESC,
A.GRADEID,PRICE,SFZDPY,LQUANT,MQUANT,MCQUANT,LCQUANT,
UQUANT,OTHQUANT1,OTHQUANT2,OTHQUANT3,OTHQUANT4,EMP1,EMP2,STATUS,A.REMARK,
DECIMAL(ABS(MCQUANT-MQUANT)/NULLIF(MQUANT,0)*100,10,2)TAG
FROM T_SUPPLY_PPB_HY A
LEFT JOIN T_SUPPLY_GRADATION B ON A.GRADEID=B.GRADEID
WHERE HYEAR=TO_CHAR(P_NF)||P_BN
ORDER BY B.GRADEID,PRODUCTCODE,A.PRICE;
--1.DECIMAL(P,S)十進制數,小數點位置由數字的精度(P)和小數位(S)確定。
-- 精度是數字的總位數,必須小於32。小數位是小數部分數字的位數且總是小於或等於精度值。
-- 如果未指定精度和小數位,則十進制值的預設精度為5,預設小數位為0。
--2.語法:NULLIF ( expression , expression )
-- expression:(常量、列名、函數、子查詢或算術運算符、按位運算符以及字元串運算符的任意組)
-- 如果兩個表達式不相等,NULLIF 返回第一個 expression 的值。如果相等,NULLIF 返回第一個 expression 類型的空值。如果兩個表達式相等且結果表達式為 NULL,NULLIF 等價於 CASE 的搜索函數。
② 在db2中修改欄位長度後 為什麼會導致資料庫不能查詢
DB2 不支持修改資料庫表格欄位名
只能刪除掉列,然後重新add
為了不丟失數據,建議:
1)增加一個新列;
2)新列值等於要改名的列
3)delete舊列
③ sql 語句 最大長度限制 DB2如何修改最大長度限制
home/datamart$ db2 get db cfg|grep HEAP
Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = AUTOMATIC
Sort list heap (4KB) (SORTHEAP) = AUTOMATIC
Database heap (4KB) (DBHEAP) = AUTOMATIC
Utilities heap size (4KB) (UTIL_HEAP_SZ) = 103816
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC
Default application heap (4KB) (APPLHEAPSZ) = AUTOMATIC
Statistics heap size (4KB) (STAT_HEAP_SZ) = AUTOMATIC
修改 STMTHEAP
P570_B_2:/DATAMART/usr/datamart >db2 update db cfg for datamart using STMTHEAP 20480 AUTOMATIC
DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.
P570_B_2:/DATAMART/usr/datamart >db2stop force
10/19/2012 10:56:14 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
P570_B_2:/DATAMART/usr/datamart >db2start
10/19/2012 10:56:20 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
P570_B_2:/DATAMART/usr/datamart >db2 get db cfg |grep STMT
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC(20480)
Automatic statement statistics (AUTO_STMT_STATS) = OFF
④ 【急】DB2資料庫修改某個欄位的長度的語句
舉例如下:
1:DB2 V9.7
CONNECT TO SAMPLE;
ALTER TABLE ADMINISTRATOR.TEST ALTER COLUMN B SET DATA TYPE VARCHAR ( 500 ) ;
CONNECT RESET;
其中B原來是VARCHAR(50),直接修改成功。
2:ALTER TABLE TABLENAME ALTER COLUMN_NAME SET DATA TYPE VARCHAR(200);
3:如果是db2 的表名:list tables
得到每一個表的詳細信息欄位名,欄位屬性(類型,文字長度,備注)
describe table 具體的表名
4:alter table tablename modify yourcolumn VARCHAR2(500);
⑤ DB2如何修改sql最大長度限制
DB2中的限制之一SQL標識符的長度限制
作者﹕CCBZZP
在現實的DB2應用中大家可能經常會遇到一些錯誤,錯誤的原因是對DB2的
限制不太了解而引起的,在此我簡單地總結一下,歡迎大家繼續﹐以便和大家共享﹐
共同探討﹐共同近步﹗(以下主要以DB2 7.X為例)。
1. 最長的認證名(單位元組字元)<=30
2. 最長的約束名稱<=18
3. 最長的關聯名稱<=128
4. 最長的條件名稱<=64
5. 最長的游標名稱<=18
6. 最長數據源列名稱<=128
7. 最長數據源索引名稱<=128
8. 最長數據源名稱<=128
9. 最長數據源表名稱(遠程認證名稱)<=128
10. 最長外部程序名稱<=8
11. 最長主機標識符<=255
12. 最長數據源用戶的標識符(遠程認證名稱)<=30
13. 最長標簽名稱<=64
14. 最長方法名稱<=18
15. 最長參數名稱<=128
16. 最長訪問數據源的口令<=32
17. 最長保存點名稱<=128
18. 最長模式名稱<=30
19. 最長伺服器(資料庫別名)<=8
20. 最長SQL變數名稱<=64
21. 最長語句名稱<=18
22. 最長轉換組名<=18
23. 最長不受限制的列名<=30
24. 最長不受限制的包名<=8
25. 最長不受限定的用戶自定義類型,用戶自定義函數,緩沖池,表空間,節點組,
觸發器索引,索引規范名稱<=18
26. 最長不受限定的表名,視圖,存儲過程名,別稱或別名<=128
27. 最長的包裝器名<=128
⑥ db2 SQL 語法注釋符哪有語法參考
使用注釋
注釋是程序代碼中不執行的文本字元串(也稱為註解)。注釋可用於說明代碼或暫時禁用正在進行診斷的部分 Transact-SQL 語句和批處理。使用注釋對代碼進行說明,可使程序代碼更易於維護。注釋通常用於記錄程序名稱、作者姓名和主要代碼更改的日期。注釋可用於描述復雜計算或解釋編程方法。
Microsoft® SQL Server™ 支持兩種類型的注釋字元:
--(雙連字元)。這些注釋字元可與要執行的代碼處在同一行,也可另起一行。從雙連字元開始到行尾均為注釋。對於多行注釋,必須在每個注釋行的開始使用雙連字元。有關使用注釋字元的更多信息,請參見 --(注釋)。
/* ... */(正斜杠-星號對)。這些注釋字元可與要執行的代碼處在同一行,也可另起一行,甚至在可執行代碼內。從開始注釋對 (/*) 到結束注釋對 (*/) 之間的全部內容均視為注釋部分。對於多行注釋,必須使用開始注釋字元對 (/*) 開始注釋,使用結束注釋字元對 (*/) 結束注釋。注釋行上不應出現其它注釋字元。有關使用 /* ...*/ 注釋字元的更多信息,請參見 /* ...*/(注釋)。
多行 /* */ 注釋不能跨越批處理。整個注釋必須包含在一個批處理內。例如,在 SQL 查詢分析器和 osql 實用工具中,GO 命令標志批處理的結束。當實用工具在一行的前兩個位元組中讀到字元 GO 時,則把從上一 GO 命令開始的所有代碼作為一個批處理發送到伺服器。如果 GO 出現在 /* 和 */ 分隔符之間的一行行首,則在每個批處理中都發送不匹配的注釋分隔符,從而導致語法錯誤。例如,以下腳本包含語法錯誤:
USE Northwind
GO
SELECT * FROM Employees
/* The
GO in this comment causes it to be broken in half */
SELECT * FROM Procts
GO
下面是一些有效注釋:
USE Northwind
GO
-- First line of a multiple-line comment.
-- Second line of a multiple-line comment.
SELECT * FROM Employees
GO
/* First line of a multiple-line comment.
Second line of a multipl-line comment. */
SELECT * FROM Procts
GO
-- Using a comment in a Transact-SQL statement
-- ring diagnosis.
SELECT EmployeeID, /* FirstName, */ LastName
FROM Employees
-- Using a comment after the code on a line.
USE Northwind
GO
UPDATE Procts
SET UnitPrice = UnitPrice * .9 -- Try to build market share.
GO
下面是關於注釋的一些基本信息:
所有字母數字字元或符號均可用於注釋。SQL Server 忽略注釋中的所有字元,而 SQL 查詢分析器、osql 和 isql 將在多行注釋中搜索前兩個字元是 GO 的行。
批處理中的注釋沒有最大長度限制。一條注釋可由一行或多行組成。
&;1988-2000 Microsoft Corporation。保留所有權利。
⑦ db2 怎麼查看執行的sql語句需要多少系統臨時表空間
問題不在於系統臨時表空間不足,而在於臨時表空間頁大小不足,原因是行的長度超過了表空間頁大小,使得表空間頁不足以容納表的行。
解決方法:創建基於更大頁的系統臨時表空間,如32K等
⑧ oracle資料庫、Db2資料庫、sqlserver2000資料庫裡面,Text、Image、CLOB和BLOB數據類型能否自定義長度
只用過DB2的BLOB,可以在建表時指定大小
⑨ DB2 SQL 語句 如何修改最大長度限制
能不能不要用中文做這些資料庫對象的名字?想試著幫你改下,需要你把你的需求描述下。同時,需要你把這之中牽涉到的資料庫對象的創建語句都貼出來。最後,如果你已經做了測試了,可把遇到的問題描述下,這樣會比較有針對性。