common core services 문제 해결
이러한 솔루션을 사용하여 연결과 관련하여 발생할 수 있는 문제를 해결하세요.
IBM Db2 for z/OS: Db2 for z/OS 서버에 연결하려고 할 때 스키마 목록을 검색하는 동안 오류가 발생했습니다
Db2 for z/OS 서버에 대한 연결을 테스트할 때 연결에서 스키마 목록을 검색할 수 없는 경우 다음 오류가 발생할 수 있습니다:
CDICC7002E: The assets request failed: CDICO2064E: The metadata for the column TABLE_SCHEM could not
be obtained: Sql error: [jcc][10150] [10300][4.28.11] Invalid parameter: Unknown column name
TABLE_SCHEM. ERRORCODE=-4460, SQLSTATE=null
문제점 해결
Db2 for z/OS 서버에서 DESCSTAT 서브시스템 파라미터를 ' No
'로 설정합니다. 자세한 내용은 정적에 대한 설명 필드(DESCSTAT 하위 시스템 매개변수)를 참조하세요.
더 이상 사용되지 않는 기능에서 생성된 코드를 실행하여 Informix 연결에 대한 데이터를 로드할 수 없습니다
"DatabaseError: SQL에서 실행 실패:... 더 이상 사용되지 않는 기능을 사용할 때 Informix 데이터베이스에서 데이터를 로드하기 위해 생성된 코드를 실행할 때 대문자 이름의 테이블을 쿼리하려고 하면 "롤백할 수 없음"이라는 오류가 발생합니다.
원인
Informix 데이터베이스는 대소문자를 구분하는 식별자를 위해 구성되어 있으므로 생성된 코드를 업데이트해야 합니다.
문제점 해결
가능하다면 Flight service 사용하여 생성된 코드를 사용하여 Informix 연결에서 데이터를 로드하도록 변경하세요. 더 이상 사용되지 않는 기능으로 생성된 코드를 계속 사용하려면 다음과 같이 생성된 코드를 편집해야 합니다:
Python 경우 연결에 연결 속성 '
'DELIMIDENT=Y'
'을 추가하고 대문자 식별자를 큰따옴표(""
)로 묶습니다. 다음 줄을 바꿉니다:Informix_connection = jaydebeapi.connect('com.informix.jdbc.IfxDriver', '{}://{}:{}/{}:user={};password={};'.format('jdbc:informix-sqli', Informix_metadata['host'], Informix_metadata['port'], Informix_metadata['database'], Informix_metadata['username'], Informix_metadata['password']), [Informix_metadata['username'], Informix_metadata['password']]) query = 'SELECT * FROM informix.FVT_EMPLOYEE'
다음을 포함합니다.
Informix_connection = jaydebeapi.connect('com.informix.jdbc.IfxDriver', '{}://{}:{}/{}:user={};password={};DELIMIDENT=Y;'.format('jdbc:informix-sqli', Informix_metadata['host'], Informix_metadata['port'], Informix_metadata['database'], Informix_metadata['username'], Informix_metadata['password']), [Informix_metadata['username'], Informix_metadata['password']]) query = 'SELECT * FROM informix."FVT_EMPLOYEE"'
Python 사용하는 Spark의 경우 교체합니다:
data_df_0 = sparkSession.read.format('jdbc') \ .option('url', 'jdbc:informix-sqli://{}:{}/{}'.format(Informix_metadata['host'],Informix_metadata['port'],Informix_metadata['database'])) \ .option('dbtable', 'informix.FVT_EMPLOYEE') \ .option('user', Informix_metadata['username']) \ .option('password', Informix_metadata['password']).load() data_df_0.show(5)
다음을 포함합니다.
data_df_0 = sparkSession.read.format('jdbc') \ .option('url', 'jdbc:informix-sqli://{}:{}/{}'.format(Informix_metadata['host'],Informix_metadata['port'],Informix_metadata['database'])) \ .option('dbtable', 'informix."FVT_EMPLOYEE"') \ .option('DELIMIDENT', 'Y') \ .option('user', Informix_metadata['username']) \ .option('password', Informix_metadata['password']).load() data_df_0.show(5)
R의 경우 연결에 연결 속성 '
'DELIMIDENT=Y'
'을 추가하고 모든 대문자 이름을 큰따옴표(""
)로 묶습니다. 다음 줄을 바꿉니다:paste("jdbc:informix-sqli://", Informix_credentials[][["host"]], ":", Informix_credentials[][["port"]], "/", Informix_credentials[][["database"]], ":user=", Informix_credentials[][["username"]], ";password=", Informix_credentials[][["password"]], ";", sep=""), ... query <- "SELECT * FROM myschema.MY_TABLE"
다음을 포함합니다.
paste("jdbc:informix-sqli://", Informix_credentials[][["host"]], ":", Informix_credentials[][["port"]], "/", Informix_credentials[][["database"]], ":user=", Informix_credentials[][["username"]], ";password=", Informix_credentials[][["password"]],";DELIMIDENT=Y", ";", sep=""), ... query <- "SELECT * FROM myschema.\"MY_TABLE\""
상위 주제: Cloud Pak for Data 문제 해결