gpt4 book ai didi

oracle - 如何通过代码确定 Oracle 数据类型的字符串值?

转载 作者:太空狗 更新时间:2023-10-30 01:44:23 24 4
gpt4 key购买 nike

我使用 DBMS_SQL.DESCRIBE_COLUMNS 过程来确定我的 SELECT 查询的结果集中的列使用了哪些数据类型。但不幸的是,通过这种方式我只能获得 Oracle 数据类型的代码 (record.col_type) - 1、8、12 等。

所以我想知道,我怎样才能轻松获得与返回的数据类型代码(即 VARCHAR2、LONG、DATE 等)等效的字符串而不是其数字代码?

最佳答案

这是一个有点笨拙的解决方案,但您可以使用 CASE 语句来“查找”数据类型描述。

case record.col_type
when dbms_types.TYPECODE_DATE then 'DATE'
when dbms_types.TYPECODE_NUMBER then 'NUMBER'
when dbms_types.TYPECODE_RAW then 'RAW'
when dbms_types.TYPECODE_CHAR then 'CHAR'
when dbms_types.TYPECODE_VARCHAR2 then 'VARCHAR2'
when dbms_types.TYPECODE_VARCHAR then 'VARCHAR'
when dbms_types.TYPECODE_MLSLABEL then 'MLSLABEL'
when dbms_types.TYPECODE_BLOB then 'BLOB'
when dbms_types.TYPECODE_BFILE then 'BFILE'
when dbms_types.TYPECODE_CLOB then 'CLOB'
when dbms_types.TYPECODE_CFILE then 'CFILE'
when dbms_types.TYPECODE_TIMESTAMP then 'TIMESTAMP'
when dbms_types.TYPECODE_TIMESTAMP_TZ then 'TIMESTAMP_TZ'
when dbms_types.TYPECODE_TIMESTAMP_LTZ then 'TIMESTAMP_LTZ'
when dbms_types.TYPECODE_INTERVAL_YM then 'INTERVAL_YM'
when dbms_types.TYPECODE_INTERVAL_DS then 'INTERVAL_DS'
when dbms_types.TYPECODE_REF then 'REF'
when dbms_types.TYPECODE_OBJECT then 'OBJECT'
when dbms_types.TYPECODE_VARRAY then 'VARRAY'
when dbms_types.TYPECODE_TABLE then 'TABLE'
when dbms_types.TYPECODE_NAMEDCOLLECTION then 'NAMEDCOLLECTION'
when dbms_types.TYPECODE_OPAQUE then 'OPAQUE'
when dbms_types.TYPECODE_NCHAR then 'NCHAR'
when dbms_types.TYPECODE_NVARCHAR2 then 'NVARCHAR2'
when dbms_types.TYPECODE_NCLOB then 'NCLOB'
when dbms_types.TYPECODE_BFLOAT then 'BFLOAT'
when dbms_types.TYPECODE_BDOUBLE then 'BDOUBLE'
when dbms_types.TYPECODE_UROWID then 'UROWID'
end case

要获取此值,您应该查询数据字典 as tbone suggests .

关于oracle - 如何通过代码确定 Oracle 数据类型的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12040140/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com