You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Oracle Live SQL中不创建视图获取查询列UDT数据类型

Oracle Live SQL中无需创建视图直接获取查询列UDT数据类型的方法咨询

我正在Oracle Live SQL在线环境中测试user-defined datatype(用户自定义数据类型,简称UDT)。日常我通常使用db<>fiddle进行测试,但该工具无法正常输出UDT值,仅会返回空结果集,无法满足测试需求。

当执行返回UDT值的查询语句时,我需要核验返回值的具体数据类型。下文给出的MRE(最小可复现示例)逻辑简单、类型清晰,但我实际业务场景中的代码复杂度更高,往往无法直接判断返回的是UDT超类型还是子类型。

当前Oracle Live SQL对UDT类型的返回结果会显示为[unsupported data type],测试代码如下:

create or replace type "MY_ST_GEOMETRY" authid current_user as object (
    entity   integer,
    constructor function my_st_geometry (
        geom_str clob,
        srid number
    ) return self as result
        deterministic,
    constructor function my_st_geometry (
        srid   integer
    ) return self as result
        deterministic
) not final;
/

alter type "MY_ST_GEOMETRY" add constructor function my_st_geometry (
    center_x        number
) return self as result
    deterministic
cascade;
/

with data as (
select my_st_geometry('point(10 10)',26917) as shape from dual)
select shape from data;

执行结果如下:

SHAPE
-----------------------
[unsupported data type]

现有数据类型确认方案

目前我已知的可行方法是基于目标查询创建视图,再查询user_tab_columns系统视图获取对应字段的数据类型,查询语句如下:

select data_type
from user_tab_columns
where table_name = 'MY_ST_GEOMETRY_VW';

执行返回结果为MY_ST_GEOMETRY类型。该方法虽然可以实现需求,但操作繁琐,我希望能找到无需创建视图即可直接获取查询列数据类型的方案。


待解决问题

是否存在无需创建视图,即可直接查看查询结果列数据类型的方法?

对应Oracle Live SQL测试脚本可在平台内通过标识nnl8wzc854tqpjavkaewuhjpk检索访问

内容的提问来源于stack exchange,提问作者User1974

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:46:00