有沒有什麼辦法可以在c#中檢索oracle架構? 這些都是我所需要的: Tables_Name, 表Columns_Name, 主鍵, 惟一鍵, 外鍵獲取Oracle架構
2
A
回答
0
您可以從Oracle中的數據字典表就像您在任何其他表選擇。下面是數據字典表的討論 - Data Dictionary
3
select * from user_tables
select * from user_tab_columns
Primary Keys, Unique Keys, Foreign Keys:
select * from user_constraints
select * from dictionary
查看您可以使用的所有可能的系統視圖。
如果您想要使用實際的DDL創建表等,您可以使用dbms_metadata.get_ddl
,它返回一個CLOB。
例如:
select dbms_metadata.get_ddl('TABLE','MY_TABLE') from dual;
0
使用DBMS_METADATA
包。 例如,爲了獲得CREATE
腳本所有的表,你會怎麼做:
SELECT DBMS_METADATA.GET_DDL('TABLE', u.table_name)
FROM USER_ALL_TABLES u
這樣一來,一點點的努力,就可以得到整個架構DDL腳本。 DBMS_METADATA
documetation page還有更多的例子。
0
我使用OracleConnection.GetSchema
方法。我自己寫了一個幫助方法來檢索每個表格。
private class SchemaInfo
{
public bool Mandatory { get; set; }
public int MaxLength { get; set; }
}
private Dictionary<string, SchemaInfo> _getSchemaInfo(OracleConnection _cn, string owner, string tableName)
{
DataTable _dt = _cn.GetSchema("Columns", new string[3] { owner, tableName, null });
Dictionary<string, SchemaInfo> _dict = new Dictionary<string, SchemaInfo>();
for (int x = 0; x < _dt.Rows.Count; x++)
{
DataRow _r = _dt.Rows[x];
SchemaInfo _si = new SchemaInfo();
object maxl = _r.ItemArray[10];
if (maxl == DBNull.Value) maxl = -1;
_si.Mandatory = (_r.ItemArray[8].ToString().Equals("N")) ? true : false;
_si.MaxLength = Convert.ToInt32((maxl ?? 0));
_dict.Add(_r.ItemArray[2].ToString(), _si);
}
return _dict;
}
您將不得不查看返回的其他元素以獲取密鑰等。我非常確定這是可用的(但可能是錯誤的)。
如果您想獲得表格,請使用Connection.GetSchema("Tables", new string[3] { owner, null, null });
相關問題
- 1. Oracle架構驗證
- 2. Oracle架構名稱
- 3. 描述Oracle架構
- 4. 使用DbProviderFactory for SQL和Oracle DB獲取架構表
- 5. 從Oracle數據庫獲取架構拋出錯誤
- 6. 獲取架構名稱
- 7. 比較Oracle 10g和Oracle 11g架構
- 8. oracle 3層架構錯誤
- 9. Oracle架構設計器
- 10. Oracle主動/主動架構
- 11. 比較SQL Server數據庫架構和Oracle數據庫架構
- 12. 從Swagger中獲取模型架構
- 13. 如何動態獲取系統架構?
- 14. 獲取規模架構使用ActiveRecord
- 15. 如何獲取設備的GPU架構?
- 16. vb.net - 獲取XSD架構元素的Xpath
- 17. 這段代碼獲取表的架構
- 18. 如何獲取表的架構名稱
- 19. 獲取架構名單的mysqli
- 20. 在json中獲取Solr架構
- 21. 獲取表的SQL Server架構
- 22. 逆向工程(oracle)架構到ERD
- 23. Oracle 11g第2版示例架構
- 24. SQLFiddle - Oracle 11g - 無法創建架構
- 25. 使用dbunit和oracle。架構問題
- 26. 在oracle中跟蹤架構增長
- 27. 從Oracle架構撤銷創建類型
- 28. Sqoop訪問特定的Oracle架構
- 29. 的Oracle SQL查詢,架構鑑於
- 30. Oracle:根據角色更改架構