Highgo Database pg_cast 隐式转换实例 (APP)

目录

环境

文档用途

详细信息

环境

系统平台:Microsoft Windows (64-bit) 10

版本:4.3.2

文档用途

在迁移Oracle数据库应用时,会有一些数据类型转换,有些转换,瀚高数据库是自带的但是未打开。打开隐式转换提高迁移效率

详细信息

pg_cast 介绍

pg_cast表存储数据类型转换路径,包括内置路径和那些通过CREATE CAST定义的路径。

应当指出,pg_cast并不代表 系统知道如何执行的每一个类型转换,只有那些 不能从一些通用规则推导出的。例如, 在域和它的基类型之间转化没有明确表示在pg_cast。另一个重要例外是"自动I/O转换"。 执行使用数据类型的I/O函数到转换到text或其它字符串类型, 没有明确表示在pg_cast

Table 45-10. pg_cast Columns

名称类型引用描述
castsourceoidpg_type.oid源数据类型的OID
casttargetoidpg_type.oid目标数据类型的OID
castfuncoidpg_proc.oid用于执行这个转换的函数的OID。如果这个转换方法不需要函数,那么为零
castcontextchar标识这个转换可以在什么环境里调用。e表示只能进行明确的转换(使用CAST::语法)。 a表示在赋值给目标字段的时候隐含调用,也可以明确调用。i表示在表达式中隐含,当然也包括其它情况。
castmethodchar说明转换是怎么运行的。 f意味着在castfunc字段中应用的规定函数。 i意味着输入输出函数被应用。b 意味着类型是二进制的 因此不要求转换。

pg_cast里列出的类型转换函数必须总是以类型转换的源类型作为它的第一个参数类型, 并且返回类型转换的目的类型作为它的结果类型。一个类型转换函数最多有三个参数。 如果出现了第二个参数,必须是integer类型;它接受与目标类型关联的修饰词,如果没有,就是-1。 如果出现了第三个参数,那么必须是boolean类型;如果该类型转换是一种明确的转换, 那么它接受true,否则接受false

pg_cast里创建一条源类型和目标类型相同的记录是合理的, 只要相关联的函数接受多过一个参数。这样的记录代表"长度转换函数", 他们把该类型的数值转换为对特定的类型修饰词数值合法的值。

如果一条pg_cast记录有着不同的原类型和目标类型,并且有一个接收多于一个参数的函数, 那么它就意味着用一个步骤从一种类型转换到另外一种类型,同时还附加一个长度转换。 如果没有这样的记录,那么转换成一个使用了类型修饰词的类型涉及两个步骤, 一个是在数据类型之间转换,另外一个是附加修饰词。

隐式转换打开实例

1、查询布尔类型自动转换int 类型是否被禁用

image.png

2、打开转换

image.png

3、 查询此刻状态

image.png

更多详细信息请登录【瀚高技术支持平台】 查看

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值