如何使用 OracleTypeCHAR 元数据获取 Oracle 对象类型中声明的 VARCHAR2 属性的长度,而不考虑数据库字符集
我的 Java 应用程序依赖于 Oracle 对象类型元数据。我使用 oracle.jdbc.oracore.OracleTypeCHAR
类通过 JDBC 访问这些元数据。 结果相比乘以 4 - 例如:
some_attribute varchar2(10)
将数据库转换为字符集 AL32UTF8
后,OracleTypeCHAR#getLength()
方法返回的结果与 Oracle 对象类型中声明的 当使用前一个字符集返回长度 10
时,结果为长度 40
。有没有办法在不解析OOT源代码的情况下从PL/SQL获取原始值?
My Java application depends on Oracle Object Types metadata. I use oracle.jdbc.oracore.OracleTypeCHAR
class to access these metadata with JDBC. After converting the database to charset AL32UTF8
, the OracleTypeCHAR#getLength()
method returns results multiplied by factor of 4 comparing to what is declared in Oracle Object Type - for example:
some_attribute varchar2(10)
Would result in lenght 40
, when lenght 10
was returned with the previous charset. Is there a way to obtain the raw value from PL/SQL without parsing OOT source code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
字符列的字符长度可以在user_tab_columns.CHAR_LENGTH中找到,
使用此查询可以查找该列的字符长度,
The character length for a character column can be found in user_tab_columns.CHAR_LENGTH,
Use this query to find the character length of the column,