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

创建用户自定义类型后,如何查询仅返回原始数据而非类型实例

解决Oracle自定义对象类型查询显示原始值的问题

这个问题在Oracle使用自定义对象类型时挺常见的——默认查询对象列时,Oracle会输出包含模式名、类型名的完整对象字符串表示,也就是你看到的myUsername.name_type('John')。要只获取里面的原始值,直接访问对象的属性就可以了:

方法1:直接访问对象属性

最直接的方式是在查询中指定对象的属性字段:

SELECT name.type FROM person;

方法2:使用表别名(可读性更好)

如果表名比较长或者查询逻辑复杂,用表别名会让代码更清晰:

SELECT p.name.type FROM person p;

可选:给结果列加友好别名

要是想让返回的列名更直观,可以给查询结果加别名:

SELECT p.name.type AS person_name FROM person p;

原理说明

当你直接查询对象类型的列时,Oracle会自动调用对象的默认字符串转换函数,把整个对象实例转换成包含类型信息的字符串。而显式访问对象的属性,就会直接取出该属性存储的原始值,不会附带类型相关的额外信息。

内容的提问来源于stack exchange,提问作者Jovan Jovanović

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:45:25