2017-09-24 19 views
0

このコードをSQL ServerからOracleに移行しようとしていますが、多くのエラーが発生します。誰でも私を助けることができますか? SQL Server内のSQL Server 2008 R2からOracle 11gにテーブル変数を移行

コード:Oracleで

DECLARE @tblFacultad TABLE 
(IdFacultad INT, 
    NomFacultad VARCHAR(200) 
); 

INSERT INTO @tblFacultad (IdFacultad, NomFacultad) 
    SELECT IdFacultad, NomFacultad 
    FROM FACULTAD_local 

SELECT * FROM @tblFacultad 

コード:

CREATE OR REPLACE TYPE objFacultad AS OBJECT 
(
    IdFacultad NUMBER, 
    NomFacultad varchar(255) 
) 

/
CREATE OR REPLACE TYPE tblFacultad is table of objFacultad; 

/
SELECT IDFACULTAD,NOMFACULTAD BULK COLLECT INTO tblFacultad FROM FACULTAD; 

私は、Oracleのコードを実行すると、私はこのエラーを取得する:

ORA-03001: unimplemented feature
03001. 00000 - "unimplemented feature"
*Cause: This feature is not implemented.
*Action: None.
Error en la línea: 11, columna: 54

+0

[PL/SQL Developer](https://www.allroundautomations.com/plsqldev.html)は、Oracle SQLおよびPL/SQLを使用するためのデスクトップ・ツールです。[SQL Developer](http:// www .oracle.com/technetwork/developer-tools/sql-developer/what-is-sqldev-093866.html)またはToad。私はここであなたが求めているのは[Oracle SQL](http://www.oracle.com/technetwork/database/database-technologies/sql/overview/index.html)です。 –

答えて

1

することができます」 Oracle SQLでは、このような表変数を定義します。コレクション型を定義して、表の列型として使用することも、PL/SQLコード内の型として使用することもできます(より一般的には)。例えば:

create or replace type objfacultad as object 
(idfacultad number 
, nomfacultad varchar(255) 
) 
/

create or replace type tblfacultad is table of objfacultad; 
/

declare 
    demo_t tblfacultad; 
begin 
    select objfacultad(idfacultad,nomfacultad) bulk collect into demo_t 
    from (select 1 as idfacultad, 'F1' as nomfacultad from dual 
      union all 
      select 2 as idfacultad, 'F2' as nomfacultad from dual) facultad; 

    dbms_output.put_line('Array contains ' || demo_t.count || ' elements:'); 

    for r in (
     select f.idfacultad, f.nomfacultad 
     from table(demo_t) f 
    ) 
    loop 
     dbms_output.put_line(r.idfacultad || ' ' || r.nomfacultad); 
    end loop; 
end; 
/

出力:create type文はSQLあり、declareを開始セクションがPL/SQLブロックであること

Array contains 2 elements: 
1 F1 
2 F2 

注意。オラクルと協力して作業する場合は、この区別に注意する必要があります。 PL/SQL Developer、Toad、テキスト・エディタなどを使用しても、違いはありません。

関連する問題