스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법안녕하세요,
다양한 수식/형식으로 데이터 준비/데이터 정리를 스크립팅했으며 출력 데이터는 JMP 테이블에서 SQL 서버에 삽입(쓰기)할 준비가 되었습니다. SQL에 접속했는데 대상 테이블의 SQL 서버 데이터베이스에 데이터를 삽입(추가)할 수 없습니다. 추가할 SQL 문을 극복하기 위해 이 상황에서 어느 누구도 도움을 줄 수 있습니까? 다음은 작성할 준비가 된(JMP 테이블 = "업로드") 최종 스크립트입니다.
Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dbc = Create Database Connection(
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101"
);
sqlreturn = Execute SQL(
dbc,
"INSERT Upload INTO [dbo].ALL_CUSTOMERS"
);
Close Database Connection( dbc );
데이터 접근Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법show() 또는 write() 명령을 사용하여 로그 창에 sql 문을 표시합니다.SQL Server 프런트 엔드(예: SQL Management Studio)에 복사/붙여넣기하면 더 나은 오류 메시지가 표시됩니다.나는 공백이 당신에게 문제를 일으키는 것이라고 생각합니다.SQL 서버에서 "수동으로" 수행하는 방법을 파악하면 JSL에서 작동하도록 만들 수 있습니다.SQL Server가 없으므로 그 이상으로 문제를 해결할 수 없습니다.
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법안녕하십니까?
여러모로 피곤했는데 오류 메시지가 없습니다. 그러나 데이터는 SQL 테이블에 삽입되지 않습니다.
잘 작동하는 다른 테이블에 동일한 스크립트를 사용했습니다. 행의 데이터가 데이터베이스 테이블에 올바르게 추가되었습니다. 하지만 이 테이블에는 2개의 열(필드)만 있습니다. 제대로 작동하는 것일 수 있습니다.
그러나 "ALL_CUSTOMER"에 삽입하는 데 지쳤을 때 스크립트가 원활하게 실행되지만 데이터베이스에 추가되지 않은 데이터가 삽입되었습니다. 실시간으로 값에 많은 공백이 있습니다. 해당 삽입이 작동하지 않기 때문에 (확실하지 않음) 일 수 있습니까? 여기에서는 참조를 위해 SQL 테이블에 전체 스크립트, SQL 열 속성 및 업로드할 준비가 된 데이터(JMP 파일)를 첨부합니다.
오류가 있으면 날짜도 확인할 수 있습니까?
스크립트의 90%를 완료했으며 프로젝트를 100% 완료하는 SQL에 데이터를 업로드하는 데 어려움을 겪었습니다.
당신의 친절한 도움에 감사드립니다.
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법이와 같은 것은 당신이 원하는 것을 할 것입니다.날짜를 처리하지 않습니다. 추가 논리가 필요합니다.SQL 서버가 삽입 날짜를 처리하는 방법을 잘 모릅니다.
dt = data table ("Upload");
col_list = dt << get column names(string);
col_names = concat items(col_list, ", ");
insert_prefix = evalinsert(
"INSERT INTO [dbo].[ALL_CUSTOMERS] (^col_names^) VALUES ");
dbc = create database connection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101");
for (i = 1, i <= nrows(dt), i++,
for (k = 1, k <= ncols(dt), k++,
one_col = col_list[k];
one_value = column(dt, one_col)[i];
// Surround strings with single quotes
if (type(one_value) == "String",
one_value = "'" || one_value || "'";
,
// Convert numeric to string, handle missing values (.)
one_value = char(one_value);
if (one_value == ".", one_value = "NULL");
);
if (k == 1,
sql_string = one_value;
,
sql_string = sql_string || ", " || one_value;
);
);
insert_sql = insert_prefix || "(" || sql_string || ")";
show(insert_sql);
// Do the insert. Execute SQL does an implicit commit
execute sql(dbc, insert_sql);
);
close database connection(dbc);
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법감사해요..
예를 들어 SQL을 실행하는 SQL을 보여줄 수 있습니까? 내가 당신의 단계를 따르고 당신에 따라 스크립트를 만들 수 있도록.
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법SAVE DATABASE가 테이블을 덮어쓴 것 같습니다.데이터를 추가하려면 여러 삽입에 대한 SQL 문자열을 생성하고 EXECUTE SQL로 SQL을 실행할 수 있습니다.
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법죄송합니다. 초기 질문에 추가할 준비가 된 완전한 스크립트와 데이터 테이블을 추가하지 않았습니다.
여기에 SQL 서버에 추가하기 위한 스크립트와 데이터 테이블을 첨부했습니다.
데이터 테이블에는 224개의 열이 있으며 동일한 필드 이름을 가진 SQL 테이블을 기반으로 올바른 순서로 되어 있습니다. 행 수는 매번 변경되므로 upload.jmp 테이블 행을 기반으로 하는 문으로 SQL에 데이터를 추가합니다.
//SQL Server에 추가할 준비가 된 데이터 테이블 "업로드"
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.ALL_CUSTOMERS");
[dbo].[ALL_CUSTOMERS]에 삽입,
(컬1, 컬럼2)
가치
(col1_value1, col2_value1),
(col1_value2, col2_value2),
Re: 스크립트를 통해 JMP dataTable에서 테이블의 SQL Server 데이터베이스에 데이터를 삽입(추가/쓰기)하는 방법SQL은 업로드가 무엇인지 모릅니다.
당신은 할 수 있습니다
dt = Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.all_customers");
그러나 실제로 SQL 테이블을 덮어쓸 것이라고 확신합니다.
SQL을 동적으로 작성할 수 있습니다.테이블을 통해 모든 값을 실행할 수 있는 SQL 문자열에 넣기만 하면 됩니다.
INSERT INTO [dbo].[ALL_CUSTOMERS]
(col1, col2)
VALUES
(col1_value1, col2_value1),
(col1_value2, col2_value2),