我是 Oracle 数据库的新手。我已经习惯了 SQL Server 和表和列的描述字段 (MS_Description) 用于文档目的。Oracle 是否有等价物?记录 Oracle 数据库的最佳实践是什么?
是否可以从 MySQL查询中获取字段类型,就像使用SHOW COLUMNS命令从表中获取它一样?例如从派生表中,
SELECT x -- presumedMetaFn(x) -- returns "int"
FROM (
SELECT 1 AS x
UNION SELECT 2
) AS t;
Run Code Online (Sandbox Code Playgroud)
鉴于上述查询,是否有一个函数或其他东西可以用来获取 x 的类型?PostgreSQL 通过系统信息函数提供此功能pg_typeof
SELECT x, pg_typeof(x)
FROM ( VALUES (1),(2) ) AS t(x);
x | pg_typeof
---+-----------
1 | integer
2 | integer
(2 rows)
Run Code Online (Sandbox Code Playgroud)
我不是在表上寻找元数据,而是从查询结果中寻找元数据。 随着psqlPostgreSQL的11+,这也可以通过运行\gdesc查询后。
有什么方法可以将我自己的元数据添加到Postgres 中的表和列中,例如短文本的键值对?
我正在从另一个数据库系统迁移表、列和数据。另一个系统具有在 Postgres 不匹配的表和列上定义的属性。例如,在其他数据库系统中,可以为每个表分配一种颜色,用于数据库结构的图形显示,例如CUSTOMER_表为绿色,INVOICE_表为红色。
所以我想要一种方法来跟踪我的 Postgres 数据库中的这些属性设置,这样我的 Java 应用程序就可以通过 JDBC 查询自定义元数据。
SET attribute ?我注意到:
ALTER TABLE … SET ( attribute_option = value [, ... ] )
Run Code Online (Sandbox Code Playgroud)
…和…
ALTER TABLE … ALTER [ COLUMN ] column_name SET ( attribute_option = value [, ... ] )
Run Code Online (Sandbox Code Playgroud)
的文档ALTER TABLE并没有真正解释这些属性的作用。我可以创建自己的属性名称以用作映射到我自己的元数据值的键吗?
或者是否有其他方法可以让 Postgres 记住我自己的自定义元数据?
Comment我想一种解决方法可能是将键值对作为文本嵌入每个表和列上的COMMENT属性。看起来有点像黑客,有点乱,因为我经常使用 COMMENT 将业务规则记录为散文。但我想它会起作用。有没有更好的方法来记住每表和每列的属性?
Extended Properties Microsoft SQL Server 的显然,MS SQL Server 为此类元数据提供了“扩展属性”功能。说明这里对堆栈溢出,并在这里对微软文档 …
我是 Oracle 和数据库管理的新手。
作为上下文,我想创建一个 Java 类,该类将为我提供使用DESC SOME_TABLE.
我在 Java 中找不到任何特定的方法来做到这一点,但是我发现这ALL_TAB_COLUMNS可以给我类似的信息。我在 SQL Developer 中尝试过,看看输出有多大不同。事实证明,结果与我预期的大不相同。
我希望有人可以引导我了解如何解释以下内容:
desc SOME_TABLE;
select
COLUMN_NAME
, DATA_TYPE
, DATA_LENGTH
, NULLABLE
from ALL_TAB_COLUMNS
where TABLE_NAME='SOME_TABLE'
order by column_id;
Run Code Online (Sandbox Code Playgroud)
给出输出:
Name Null Type
--------------- ------- ----------------------
UIDPK NUMBER(20)
NAME VARCHAR2(255)
2 rows selected
COLUMN_NAME DATA_TYPE DATA_LENGTH NULLABLE
--------------- -------------- -------------- --------
UIDPK NUMBER 22 N
UIDPK NUMBER 22 N
UIDPK NUMBER 22 Y
NAME VARCHAR2 255 N
NAME VARCHAR2 255 Y
NAME VARCHAR2 255 …Run Code Online (Sandbox Code Playgroud) 是否可以在不询问 DBA 的情况下找到我的密码到期日期?
我的用户没有查看DBA_USERS表的权限。另外,我试过select * from USER_USERS桌子,但它expiry_date是空的。
SQL Server 中 object_id 的唯一性级别是什么?我的意思是,这个值是不是每个数据库、每个实例、每个服务器都是唯一的,...此外,当我在另一个服务器或实例中恢复数据库时会发生什么?如果我从脚本而不是备份创建数据库,那么 object_id 会发生什么?
我能够从 sys.sql_modules 访问存储过程、视图、触发器和函数的文本定义。我想获取索引的文本定义。
如何获取 SQL Server 中索引的文本定义?
是否有我可以查看的模式或我可以运行的查询来查看所有 Netezza 系统或元数据表?
我知道_v_table,_v_view,_v_relation_column,和_v_groupusers。我知道还有很多其他的,我想要一个最终的清单。每个文件的文档也很好,但我只会列出一个列表。
我查看了如何列出 netezza 系统表/视图?但我正在寻找系统表列表。该问题的作者希望提取有关其系统上表的特定元数据。
我做了这个查询,列出表、它的列、数据类型等:
select t.name as 'Table',
c.name 'Column',
ty.name 'Data_Type',
c.max_length as 'Max_Lenght',
c.is_nullable as 'Null',
c.is_identity as 'Identity'
from sys.tables t
join sys.columns c on t.object_id=c.object_id
join sys.types ty on c.system_type_id=ty.system_type_id
order by 1
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
问题 1:
如何'Is primary key?'向其中添加列?我找不到可以帮助我的表(我看了看sys.indexes, sys.foreign_keys, INFORMATION_SCHEMA.table_constraints)。
问题 2:
在 中sys.columns,int 值具有max_lenghtas 4,还有一些其他字段。这是什么4?每个数据 4kb?datetime还有decimal。
谢谢。
有没有办法确定 PostgreSQL 中的用户定义类型是否是 ENUM?
基本上我们有以下几点:
CREATE TYPE foo AS ENUM (
'Sometimes',
'You',
'Wanna',
'Go',
'Where Everybody Knows Your Name'
);
Run Code Online (Sandbox Code Playgroud)
通过以下方式实例化的表:
CREATE TABLE bar (
lyrics foo DEFAULT 'Wanna'::foo
);
Run Code Online (Sandbox Code Playgroud)
我能够foo从列中确定的类型lyrics,但是,我无法找到确定是否foo是 ENUM 的方法。
对于上下文,我需要此信息以编程方式获取foo给定lyrics.