рдУрдкрди рдХреНрд╡реЗрд░реА рд▓рд┐рдВрдХреНрдб рд╕рд░реНрд╡рд░ рдЯреЗрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдпрд╣ рд╕реЗрдЯ рдЖрдкрдХреЛ Oracle рдФрд░ SQL рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреНрд░рдЧрддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред
A Simple set of Stored Procedures that return a list of Tables from Oracle or Progress databases linked into SQL Server using dynamic SQL.
The SELECT statement can also be used independently on the relevant application.
Oracle
CREATE PROC [dbo].[GetOpenQuery_Oracle_Tables](@LinkServ NVARCHAR(100)) AS BEGINDECLARE @SQL NVARCHAR(MAX)='SELECT * FROM OpenQuery('+@LinkServ+', ''SELECT * FROM user_tables ORDER BY TABLE_NAME'')'PRINT @SQLEXEC sp_executesql @SQLENDGO
Progress
CREATE PROC [dbo].[GetOpenQuery_Progress_Tables](@LinkServ NVARCHAR(100)) AS BEGINDECLARE @SQL NVARCHAR(MAX)='SELECT * FROM OpenQuery('+@LinkServ+', ''SELECT * FROM sysprogress.SYSTABLES WHERE CREATOR = ''''PUB''''AND ID >= 0 ORDER BY TBL'')'PRINT @SQLEXEC sp_executesql @SQLENDGO
Running the code
To run them simply execute the appropriate Stored Procedure with the linked server name.
EXEC GetOpenQuery_Oracle_Tables 'Server_Name'EXEC GetOpenQuery_Progress_Tables 'Server_Name'