為什么在PB9中動態創建ACCESS資料表如表中包含numeric型別欄位就出錯是怎么回事。陳述句如下
CREATE TABLE hydl_hthq_hqdxxb (hqdlbxh Integer not null, hqdbh String(50) not null,
hqdmc String(200) not null,htbh String(100), tbrq String(8) not null, qcrid Integer not null, jfmc String(200) not null, yfmc String(200) not null, htzj numeric(10,2) not null,
yt String(50), sl String(10), cgxs Integer, cgxj String(50), hqrid Integer not null,
hqwbbz Integer not null, hqrzwxh Integer not null, hqryj String(200), qbrq String(8),
PRIMARY KEY (hqdmc, hqrid)) ;
如果把htzj numeric(10,2) not null 這句刪掉就沒問題了 一加上就出現CREATE TABLE錯誤,請高人指點迷津
uj5u.com熱心網友回復:
numeric只能是numeric(6,2),如果需要更大精度,要使用雙精度資料型別doubleuj5u.com熱心網友回復:
改成numeric(6,2)還是不行 并且我發現 無論我是改為FLOAT(2) 還是REAL(2)都是不行 是不是含有小數位的欄位型別就不能動態創建呀uj5u.com熱心網友回復:
試了一下,好像是小數位數是自動的create tt(
name char(10),
tt double //就這樣,是雙精度,但小數位數是自動
)
uj5u.com熱心網友回復:
動態創建的,我找不到對應的數字型別.但在ACCESS中,(手工建表的話),資料型別->數字->欄位大小->小數->你自己要的精度.
正常的業務系統,盡量不要用DOUBLE/FLOAT一類的非精確數.
寫業務系統,非精確數,很多情況下,計算結果是不可控的,會產生很多不必要的BUG.
uj5u.com熱心網友回復:
還有一個辦法,就是使用SQL陳述句來創建,可以指定小數位數SELECT 'aa' as name,'bb' as sex,12345678.95 as tt INTO t_5
這樣就會新建一個表t_5,里有三個欄位
name 文本
sex 文本
tt 數值型別,2位小數
然后再清空一下資料
DELETE FROM t_5
uj5u.com熱心網友回復:
ACCESS中的小數位只不過是ACCESS中的顯示位數,并不是實際的小數位。轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/70848.html
標籤:數據庫相關
