
本文共 1228 字,大约阅读时间需要 4 分钟。
目录
环境
文档用途
详细信息
环境
系统平台: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
名称 | 类型 | 引用 | 描述 |
---|---|---|---|
castsource | oid | pg_type.oid | 源数据类型的OID |
casttarget | oid | pg_type.oid | 目标数据类型的OID |
castfunc | oid | pg_proc.oid | 用于执行这个转换的函数的OID。如果这个转换方法不需要函数,那么为零 |
castcontext | char | 标识这个转换可以在什么环境里调用。e 表示只能进行明确的转换(使用CAST 或:: 语法)。 a 表示在赋值给目标字段的时候隐含调用,也可以明确调用。i 表示在表达式中隐含,当然也包括其它情况。 | |
castmethod | char | 说明转换是怎么运行的。 f 意味着在castfunc 字段中应用的规定函数。 i 意味着输入输出函数被应用。b 意味着类型是二进制的 因此不要求转换。 |
在pg_cast
里列出的类型转换函数必须总是以类型转换的源类型作为它的第一个参数类型, 并且返回类型转换的目的类型作为它的结果类型。一个类型转换函数最多有三个参数。 如果出现了第二个参数,必须是integer
类型;它接受与目标类型关联的修饰词,如果没有,就是-1
。 如果出现了第三个参数,那么必须是boolean
类型;如果该类型转换是一种明确的转换, 那么它接受true
,否则接受false
。
在pg_cast
里创建一条源类型和目标类型相同的记录是合理的, 只要相关联的函数接受多过一个参数。这样的记录代表"长度转换函数", 他们把该类型的数值转换为对特定的类型修饰词数值合法的值。
如果一条pg_cast
记录有着不同的原类型和目标类型,并且有一个接收多于一个参数的函数, 那么它就意味着用一个步骤从一种类型转换到另外一种类型,同时还附加一个长度转换。 如果没有这样的记录,那么转换成一个使用了类型修饰词的类型涉及两个步骤, 一个是在数据类型之间转换,另外一个是附加修饰词。
隐式转换打开实例
1、查询布尔类型自动转换int 类型是否被禁用
2、打开转换
3、 查询此刻状态
更多详细信息请登录【瀚高技术支持平台】 查看
发表评论
最新留言
关于作者
