Каковы эквиваленты этих различных таблиц SQL в оракуле - PullRequest
3 голосов
/ 14 марта 2011

Таблицы SQL:

sys.types sysobjects SYSCOLUMNS sysindexes INFORMATION_SCHEMA.COLUMNS

Можете ли вы также помочь мне преобразовать это в синтаксис оракула

DECLARE @tableUpdateCount tinyint
set @tableUpdateCount = 0
/* 
* CALCDETL.ALIAS - 1
*/
if exists (select * from syscolumns where id = (select id from sysobjects where name = 'ABC' and type = 'U') and name = 'ALIAS' and xusertype = (select user_type_id from sys.types where name = 'nvarchar') and prec = 20)
begin
    set @tableUpdateCount = @tableUpdateCount + 1
    print ' '
    print '1.  ABC.ALIAS exists'
end

Существуют ли какие-либо инструменты, которые могут легко преобразовать синтаксис sql-to-oracle?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 14 марта 2011
sysobjects  <-> USER_OBJECTS
syscolumns  <-> USER_TAB_COLUMNS
sysindexes <-> USER_INDEXES

вы можете использовать ВСЕ / DBA вместо ПОЛЬЗОВАТЕЛЯ, в зависимости от области, в которой вы хотите выполнять поиск (и вашей роли в базе данных)

См. Ссылка для получения дополнительной информации..

И Проверьте: Функции Oracle Pl / SQL для преобразования

1 голос
/ 14 марта 2011
set ServerOutPut on;

DECLARE
     tableUpdateCount number(1) := 0;
     Id number(5);
/* 
* CALCDETL.ALIAS - 1
*/
Begin
select id into Id from syscolumns where id = (select id from sysobjects where name = 'ABC' and type = 'U') and name = 'ALIAS' and xusertype = (select user_type_id from sys.types where name = 'nvarchar') and prec = 20);

    tableUpdateCount := tableUpdateCount + 1; 
    dbms_outPut.Put_line('');
    dbms_outPut.Put_line('1.  ABC.ALIAS exists'); 
Exception
    when No_Data_found then
          dbms_outPut.Put_line('ABC.ALIAS not found');
End;
1 голос
/ 14 марта 2011

Это определенно поможет вам. Это бесплатно.

Кстати, для преобразования вашего SQL syntax-> Oracle syntax вы должны сначала пройти это сравнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...