2017-12-19 19 views
-1

SQL Server에 스크립트를 작성 했으므로 Oracle에서 사용해야합니다. 나는 지금 당분간 노력했는데 끊임없이 오류를받는 것 외에는 아무것도 할 수 없었다. 누군가 Oracle에서 작동하도록 다음 스크립트를 수정하는 방법을 알려주시겠습니까?MS SQL Server to Oracle 스크립트 번역

DECLARE @oid VARCHAR(50); 
DECLARE @toids TABLE (oid VARCHAR(50)) 
INSERT INTO @toids (oid) SELECT oid FROM awftask WHERE oid in (SELECT oid 
FROM agltransactmap) 



WHILE (SELECT COUNT(*) FROM @toids WHERE oid IS NOT NULL) > 0 
BEGIN 
SET @oid = (SELECT TOP 1 oid FROM @toids); 

INSERT INTO awftaskfin (some staff) FROM awftask 
WHERE oid in (@oid); 

여기에 몇 가지 다른 삽입과 삭제 한 다음 스크립트를 종료는 다음과 같습니다

END 

나는이 어떤 도움을 주셔서 감사합니다 정말 것이다.

+3

SQL Developer, Tools> Migrations> Scratch Editor. SQL Dev에는 T-SQL을 PL/SQL로 변환하는 데 도움이되는 기능이 있지만 먼저 오라클에서 최선을 다하는 것이 사용자의 필요에 부합하는지 알아야합니다. 직접 1 : 1 번역이 효과적 일지 모르지만 갈 길이 멀지 않을 수 있습니다. – thatjeffsmith

+0

무엇을 시도하고 어떤 오류가 발생합니까? – Shawn

답변

0
CREATE TYPE StringList IS TABLE OF VARCHAR2(50); 
/

DECLARE 
    toid StringList; 
BEGIN 
    SELECT oid 
    BULK COLLECT INTO toid 
    FROM awftask 
    WHERE oid IN (SELECT oid FROM agltransactmap); 

    FOR i IN 1 .. toid.COUNT LOOP 
    INSERT INTO awftaskfin (some staff) VALUES (toid(i)); 
    -- here are some other inserts and deletes 
    END LOOP; 
END; 
/