如何使用 PL-SQL 在 Oracle 中获取列数据类型
Posted
技术标签:
【中文标题】如何使用 PL-SQL 在 Oracle 中获取列数据类型【英文标题】:How do I get column datatype in Oracle with PL-SQL 【发布时间】:2013-10-24 10:19:18 【问题描述】:我创建了一个 apex 应用程序,它使用 jquery、包、函数和过程来检查字段中输入的值是否可以存储在表中。
目前它告诉您“字符太长”、“日期不正确”等,但我现在要做的是返回数据类型作为示例
table: information
name datatype
ID number
info1 varchar2(100)
.
.
.
.
现在假设我输入了一些长度超过 100 个字符的值。我会得到“字符太长”,这很好,但我想连同消息一起返回“varchar2(100)”。
pl/sql 可以返回数据类型吗?
【问题讨论】:
我知道desc
用于获取表格的信息,例如desc table_name;
但是你如何获得表格中的单列
【参考方案1】:
查看 user_tab_columns 数据字典视图的列。它们具有您需要的所有数据类型和长度信息。
【讨论】:
【参考方案2】:使用 sql,您的查询将类似于: 选择数据类型||'('||数据长度||')' 来自 user_tab_columns 其中 table_name = 'MY_TABLE' 和 column_name = 'MY_COLUMN'
你可以把它放在你的函数中,在那里你进行其余的验证。
【讨论】:
以上是关于如何使用 PL-SQL 在 Oracle 中获取列数据类型的主要内容,如果未能解决你的问题,请参考以下文章
Oracle (pl-sql) - 如何从文本中提取特定数据到对象类型变量中?
如何编写触发器来检查工资是不是超出工资的最小或最大范围pl-sql Oracle
关于使用啥 pl-sql 从 Oracle 10G 数据库中提取大量记录(六百万)的任何建议,并从多个表中进行连接? [复制]