我有疑问:
SELECT Table_Name AS Table_Name,
'select count(*) from '
|| Table_Name
|| 'where language!=0' AS Query
FROM All_Tables
WHERE Owner = 'databaseName'
AND ( Table_Name LIKE 'HH%'
OR Table_Name LIKE 'TT%' )
但是,并非所有表都具有列language
。如何检查该列是否存在,如果存在则检查language
值?
答案 0 :(得分:3)
列名存储在USER_TAB_COLUMNS
中;通过USER_TABLES
列将其与TABLE_NAME
进行连接,例如
select *
from user_tables t join user_tab_columns c on t.table_name = c.table_name
您知道表名,您应该能够检查某些列是否存在。
如果您使用ALL_TABLES
/ ALL_TAB_COLUMNS
,请同时包含OWNER
值。
答案 1 :(得分:1)
您可以像这样修改现有查询:
C++:
CreateFileMappingW(L"MySharedMemory");
C#:
MemoryMappedFile.OpenExisting("MySharedMemory")
让我知道是否有帮助。
谢谢 Idrees
答案 2 :(得分:0)
要检查特定表中是否存在列,请使用:
SELECT owner, table_name
FROM all_tab_columns
WHERE UPPER(column_name) = UPPER(<your column _name>) and
TABLE_NAME=upper(<your table_name>);