SQL表:
sys.types 系统对象 syscolumns中 sysindexes的 INFORMATION_SCHEMA.COLUMNS
你能帮我转换成oracle语法
吗?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语法的工具?
谢谢!
答案 0 :(得分:4)
sysobjects <-> USER_OBJECTS
syscolumns <-> USER_TAB_COLUMNS
sysindexes <-> USER_INDEXES
您可以使用ALL / DBA而不是USER,具体取决于您要搜索的范围(以及您在数据库中的角色)
有关详细信息,请参阅Reference。
并检查:Oracle Functions Pl/SQL进行转化
答案 1 :(得分:1)
这肯定会帮助你。它是免费的。
顺便说一句,要转换SQL syntax-> Oracle syntax
,您必须首先进行此比较。
答案 2 :(得分:1)
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;