Мне нужно написать код, чтобы узнать некоторую информацию о нескольких базах данных. Это будет наш клиент, который выполнит код, поэтому я не смогу настроить его «онлайн». Базами будут Oracle (9, 10, 11), DB2, AS400 DB2, Informix и MS SQL (2000 и 2008). Я написал код, который мне нужен для Oracle, но я ничего не знаю о других базах данных. Не могли бы вы помочь мне воспроизвести его для других баз данных? Большое спасибо!Список таблиц (в DB2, SQL Server, Informix и Oracle)
select owner, count(*) -- number of tables in schemes
from all_tables
where owner not in ('SYS', 'SYSTEM', 'SYSMAN') and temporary = 'N'
group by owner
select atc.owner, atc.data_type, count(*) --number of tables by schemes and datatypes
from all_tab_columns atc
inner join all_tables t
on t.OWNER = atc.OWNER
and t.TABLE_NAME = atc.TABLE_NAME
where atc.owner not in ('SYS', 'SYSTEM', 'SYSMAN')
and t.temporary = 'N'
group by atc.owner, atc.data_type
select atcom.owner, count(*) --number of comments by schemes
from all_tab_comments atcom
inner join all_tables t
on t.OWNER = atcom.OWNER
and t.TABLE_NAME = atcom.TABLE_NAME
where atcom.comments is not null
and atcom.owner not in ('SYS', 'SYSTEM', 'SYSMAN')
group by atcom.owner
select owner, constraint_type, count(*) --number of constraints by schemes and types
from all_constraints ac
where status = 'ENABLED' and owner not in ('SYS', 'SYSTEM', 'SYSMAN')
group by owner, constraint_type
ЗАКАНЧИВАТЬ INFORMATION_SCHEMA. – jarlh
Какой API вы используете? Если вы поддерживаете подключения ко многим различным базам данных, представляется весьма вероятным, что вы используете кросс-платформенный API для подключения к базе данных. Если это так, этот API (ODBC, JDBC, OLE DB, ODP.Net и т. Д.) Будет предоставлять функции для этого, а не писать SQL для каждой базы данных. –