2016-07-11 2 views
0

저는 ISQL (SQLAnywhere 12)을 사용하여 CSV에서 INPUT INTO를 사용하여 기존 테이블로 데이터를 가져 왔으며 결코 문제가 발생하지 않았습니다. 그러나 오늘은 자동 증가 열을 포함하는 테이블로 데이터를 가져와야 했으므로 그 열을 비워 두어야한다고 생각하여 데이터를 1 행만 포함하는 파일로 시도했습니다 (안전 할 수 있음). 다음 정수 값 대신에 자동 증가 필드에서 0을 사용하여 가져온 것으로 나타납니다.Sybase LOAD TABLE을 올바르게 사용하는 방법은 무엇입니까?

Sybase documentation에서 보았을 때 대신 LOAD TABLE을 사용해야하는 것처럼 보였지만 예제는 약간 복잡해 보입니다.

내 질문은 다음과 같다 ...

  • 문서는 CSV 파일은 데이터베이스 서버가 아닌 클라이언트에 있어야했다. 데이터베이스 서버 자체에 대한 액세스 권한이 없습니다. 원격으로 ISQL에서 파일을로드 할 수 있습니까?
  • 로드 할 테이블의 열을 어떻게 정의합니까? 데이터를 일부 열에로드하고 나머지를 NULL로 남겨 두는 경우에는 어떻게됩니까?
  • 확인하려면 기존 데이터를있는 그대로 그대로두고 CSV에있는 항목을 사용하여 기존 데이터를 그대로 추가하면됩니까?

미리 감사드립니다.

답변

0
  1. 예. LOAD TABLE에 대해 online documentation을 확인하십시오. USING CLIENT FILE 절을 사용할 수 있습니다.

  2. 표 이름 뒤에 괄호 안에 열 이름을 지정할 수 있습니다 (예 : LOAD TABLE mytable (col1, col2, col3) USING CLIENT FILE 'mylocalfile.txt'). 여기에 나열되지 않은 열은 null이 허용되는 경우 NULL로 설정되고 그렇지 않으면 빈 문자열과 동일하게 설정됩니다. 이것이 자동 증가 열이 0으로 설정된 이유입니다. DEFAULTS ON 절을 사용하여 원하는 것을 얻을 수 있습니다.

  3. 예, 표의 기존 데이터는 영향을받지 않습니다.

+0

정말 고마워요. 하나의 후속 질문 - 문서에서 일부 예제는 필렛()을 열 목록에 사용합니다. 그게 뭐야? – sqlandrew

+0

가져올 데이터의 열이 더 많은 csv 파일이있을 때 사용됩니다. 네 열이있는 파일이 있지만 세 번째 열은 필요 없다고 가정 해보십시오. 세 번째 열을 건너 뛰려면 LOAD TABLE mytable (col1, col2, filler(), col4) ... '을 사용합니다. –

+0

알았습니다. 다시 한 번 감사드립니다! – sqlandrew

관련 문제