2016-09-25 1 views
0

모든 데이터와 스키마를 MsSqlServer에서 Oracle로 마이그레이션하는 도구를 만듭니다.엔터프라이즈 라이브러리를 사용하여 Oracle에서 테이블을 만들 수 없습니다.

사용되는 .Net 라이브러리는 입니다. EntlibContrib.Data.OdpNet입니다.

이 테이블을 작성 실행하는 동안 : 나는 몇 가지 주제를 검색 한

ORA-00931: missing identifier 
ORA-06512: at "SYS.DBMS_UTILITY", line 156 
ORA-06512: at line 1 

하지만

답변

1

당신은에 표시 해결책을 찾을 수 없습니다 : 나는 예외를 가지고

OracleDatabase db = new OracleDatabase(connectionString); 
string createDDL = "CREATE TABLE APPInvoiceItems (ABC RAW(16));"; 
db.ExecuteNonQuery(createDDL); 

OracleDatabase.ExecuteNonQuery 메서드의 잘못된 오버로드를 호출하고 있습니다.

이 메서드에는 다섯 가지 오버로드가 있으며 모두 the superclass, Database에서 상속됩니다. 호출중인 오버로드에는 저장 프로 시저 매개 변수에 대해 저장 프로 시저 이름과 params 개체 배열이 필요합니다. DDL 문이 저장 프로 시저에 유효한 이름이 아니기 때문에 오류가 발생합니다.

db.ExecuteNonQuery(CommandType.Text, createDDL); 

(. CommandTypeusing System.Data 필요)

또한, 당신이 당신의 DDL 문 끝에 세미콜론을 제거해야합니다 :

나는 다음과 같은 과부하를 사용하여 일 것을 발견했다. 그렇지 않으면 오류 ORA-00911: invalid character가 표시됩니다.

+0

당신은 맞지만 충분하지 않습니다. 우리는 명령 끝에 TABLESPACE도 추가해야합니다. 고맙습니다 – phuongnd

관련 문제