在尝试自己回答这个问题时,我最终在我的查询字词中添加了“oracle”后遇到了这个小块:
select DBMS_METADATA.GET_DDL('TABLE','<table_name>') from DUAL;
哪个有效,但不便携。我如何在MySQL上做同样的事情? SQLite的?其他
答案 0 :(得分:3)
FOR SQL Server INFORMATION_SCHEMA.VIEWS将输出长度限制为4000个字符,这对我来说非常不可靠。
以下定义为nvarchar(max)效果更好,适用于多种对象类型(VIEW,SQL_STORED_PROCEDURE,SQL_SCALAR_FUNCTION,SQL_INLINE_TABLE_VALUED_FUNCTION,SQL_TABLE_VALUED_FUNCTION,可能更多,这是我在数据库中看到的)
SELECT TOP 1000
O.name
, O.type
, O.type_desc
, M.definition
FROM sys.Sql_modules AS M
LEFT OUTER JOIN sys.objects AS O ON M.object_id=O.object_id
答案 1 :(得分:2)
那么, IS 是一个名为 INFORMATION_SCHEMA 的ANSI标准。包括Microsoft(SQL Server),Oracle,MySQL,Postgres在内的许多供应商都支持它,因此这可能是第一步。
有关详细信息,请参阅此article here。
对于视图,有三个INFORMATION_SCHEMA视图:
“INFORMATION_SCHEMA.VIEWS”视图中有一个名为“VIEW_DEFINITION”的列,因此可能会以一种有点stadandized的方式为您提供所需的信息。
马克
答案 2 :(得分:1)
由于数据库元数据未标准化,因此没有标准方法可以执行此操作。