sql - Oracle SQL,在select语句中获取长度更大的varchar2列
问题描述
我在表中有一个 varchar2(8) 列,我想在 select 语句中将其转换为 varchar2(100) (即我不想在之后调用“alter table”)。*有可能吗?有没有像“to_varchar2(x, 100)”这样的函数?
(*) 原因是我需要在“模型”语句中使用该列,其中会有更长的附加标识符。我不想创建一个中间表并使用“alter table”来更改 varchar2 长度。例子:
select date, mystringvariable r, somenumber v from MyTable
model
unique single reference
return updated rows
partition by(date) dimension by(r) measures(v)
rules upsert automatic order (
v['too_long_identifier'] = v['X1']
);
Error at line 5:
ORA-12899: value too large for column ??? (actual: 19, maximum: 8)
partition by(date) dimension by(r) measures(v)
^
解决方案
不确定您需要在查询中的哪个位置执行此操作(我没有要测试的数据),但如果str
是任何数据类型的表达式varchar2(8)
并且您需要将其重铸为varchar2(100)
,则可以使用该cast
函数:
.... cast(str as varchar2(100)) ....
推荐阅读
- postgresql - 无法通过 Google Cloud 上端口 8085 上的 pgadmin 远程连接到 postgresql
- soap - 在测试用例中从 DUT 向 Onvif Device 测试工具提出故障时出错
- reporting-services - 如何将一个 SSRS 子报表中的值传递到同一父报表下的另一个子报表
- laravel - 如何允许第 3 方(twilio)访问 laravel 中的当前用户帐户
- javascript - 将道具传递给子组件的问题
- hibernate - Grails 是否支持 Hibernate Optimistic Lock Type ALL?
- sql - 使用 WHERE 子句模拟 OUTER JOIN
- facebook - Facebook 服务器端 API - 推送自定义事件以创建自定义受众
- fuzzing - AFL hello world 示例
- arrays - 在ruby中对数字和字符串数组进行排序的有效方法?