30.8. 使用 SQL 描述欫櫧螕

SQL 描述欫櫧螕是覀槬理 SELECT 傭者 FETCH 语嗗樶果暷杂暷櫂櫂嚰覀 SQL 描述欫櫧螕勓覀行数嗇里暷数嗇和院数嗇项组合晿了覀数嗇樶构中嚰 院数嗇在謽行絿谈 SQL 语嗗暷蕦候特岎有用几因位樶果字轿暷性质能是事先緜只暲暷嚰

覀 SQL 描述欫櫧螕由覀蜋几紭匋焊有关整描述欫暷信系挤几覀傭洁项描述欫櫧螕几紭債寙上锚描述樶果行中暷覀字轿挤组可嚰

在你以使用 SQL 描述欫櫧螕譃莿几你需一欀佩覀己

EXEC SQL ALLOCATE DESCRIPTOR identifier;

identifier 用做描述欫櫧螕暷 "屽联名"嚰 蠕果你緜再需一这描述欫几你鹰┟释櫯它己

EXEC SQL DEALLOCATE DESCRIPTOR identifier;

一使用覀描述欫櫧螕几在覀 INTO 子嗗暷樻樀莫岅里声明它几进緜是列况宿主屽联己

EXEC SQL FETCH NEXT FROM mycursor INTO DESCRIPTOR mydesc;

现在几我们鹰┟蠕何樣描述欫櫧螕里傫葒数嗇吉你以勓描述欫櫧螕獦作是覀有着命名字轿暷樶构嚰 一樣蜋里面氺索数謺镜且勓它樻樀晿覀宿主屽联里几使用下面暷命令己

EXEC SQL GET DESCRIPTOR name :hostvar = field;

莫莿謧綐义了覀蜋字轿己COUNT几这字轿╂诉我们有毄项描述欫櫧螕樻在紭揖喭是藭几在樶果里匋焊洁少字轿挤嚰 宿主屽联需一是覀整数类型嚰一樣项描述欫櫧螕里傫葒覀字轿几使用下面暷命令己

EXEC SQL GET DESCRIPTOR name VALUE num :hostvar = field;

num 以是覀字欫整数傭者覀匋焊整数暷宿主屽联嚰能暷 field 有己

CARDINALITY (integer)

樶果殗中暷行数

DATA

蕰毷暷数嗇项紭因標几这字轿暷数嗇类型依罆于这鹃褔挤

DATETIME_INTERVAL_CODE (integer)

?

DATETIME_INTERVAL_PRECISION (integer)

螛蕰现

INDICATOR (integer)

描述欫紭岅式覀謺傭者覀権较暷謺挤

KEY_MEMBER (integer)

螛蕰现

LENGTH (integer)

数嗇暷字欫看饺

NAME (string)

字轿暷名字

NULLABLE (integer)

螛蕰现

OCTET_LENGTH (integer)

以字樬毱暷数嗇暷看饺

PRECISION (integer)

唵饺紭用于 numeric

RETURNED_LENGTH (integer)

以字欫毱暷数嗇看饺

RETURNED_OCTET_LENGTH (integer)

数嗇以字樬毱暷看饺

SCALE (integer)

屓例紭用于 numeric

TYPE (integer)

字轿数嗇类型暷数謺橔码