안녕,
base64로 인코딩된 데이터를 JMP로 가져오려고 하는데 데이터가 255자에서 잘리는 것 같습니다. base64 문자열을 포함하는 데이터베이스 열의 길이는 546,168자입니다. jmp 테이블 열의 문자 제한을 늘리는 방법이 있습니까?
감사해요,
재키
데이터베이스 가져오기인가요, 아니면 CSV 가져오기인가요?
SQL 데이터베이스인 경우 이는 유용할 수 있습니다.
데이터베이스에서 JMP로의 바이트 배열 이미지
odbc를 통해 데이터베이스에서 큰 열을 다운로드하는 중
CSV 데이터라면 어떻게 열어보시나요? open() 문이나 대화를 공유하면 도움이 될 수 있습니다. 또한 잘못된 가져오기의 소스 스크립트입니다. JMP는 매우 큰 문자열을 읽을 수 있어야 합니다. 가져온 문자열의 길이를 어떻게 결정했습니까?
다음은 open(...csv)을 사용한 빠른 테스트입니다.
x = "1," || Encode64 Blob( Char To Blob( Repeat( "the quick brown fox", 30000 ) ) ) || ",3"; Show( Length( x ) );
y = "4," || Encode64 Blob( Char To Blob( Repeat( "jumps over the lazy", 30000 ) ) ) || ",6"; Show( Length( y ) );
file = Save Text File( "$temp/x.csv", "a,b,c\!n" || x || "\!n" || y );
dt = Open( file );
Show(
JMP Version(),
Length( dt:b[1] ),
Length( dt:b[2] ),
Blob Peek( Decode64 Blob( dt:b[1] ), 0, 38 ),
Blob Peek( Decode64 Blob( dt:b[2] ), 0, 38 )
);
/*
Length(x) = 760004;
Length(y) = 760004;
JMP Version() = "17.2.0";
Length(dt::b[1]) = 760000;
Length(dt::b[2]) = 760000;
Blob Peek(Decode64 Blob(dt::b[1]), 0, 38) = Char To Blob( "the quick brown foxthe quick brown fox", "ascii~hex" );
Blob Peek(Decode64 Blob(dt::b[2]), 0, 38) = Char To Blob( "jumps over the lazyjumps over the lazy", "ascii~hex" );
*/
(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(a lot of) base 64 data in middle column(많은) 중간 열에 기본 64 데이터
소스 스크립트는 다음과 같습니다
Open(
"$TEMP/x.csv",
columns(
New Column( "a", Numeric, "Continuous", Format( "Best", 12 ) ),
New Column( "b", Character, "Nominal" ),
New Column( "c", Numeric, "Continuous", Format( "Best", 12 ) )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 1 ),
First Named Column( 1 ),
Data Starts( 2 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
)
나는 당신이 사용하고 싶어할 것이라고 생각합니다

나는 그것이 최대 20억 문자의 입력 스트림을 처리할 수 있다고 믿습니다. 예제는 스크립팅 인덱스를 확인하세요.
@Craige_Hales 감사합니다!
데이터베이스 서버에서 JMP로 쿼리하고 있습니다.
16진수로 변환하려고 했는데 255자까지만 읽혀요
질문:
ODBC = Create Database Connection( "DSN=xxx;" );
SQL= Eval Insert(
"SELECT hex(plot) AS HexadecimalPlot
FROM db.main.plot_table;");
dt_diesort2 = Execute SQL( ODBC, SQL, "Pic_table" );
내가 끝내는 것은 다음과 같습니다.

JMP 읽기 제한은 255자까지입니다.
"89504E470D0A1A1A0A0000000D4948445200000DAC000007D0080600000094E2F9EB0000200049444154785EECDD07905545DA3FE0171024A818565D3388A262465 D54CC3960045D54740D8062C29C3127CC8B8A39E79CF39A139815B3A288620EA0E420FFEABB9FFB37CCBD3373A7679881A7ABBEFAB68AD36F773FA7E7CE19E"
jmp 테이블에 쿼리하려는 원래 16진수 값을 첨부했습니다.
환영합니다. 어떤 부분이 효과가 있었나요? 공유할 수 있는 세부정보를 제공해 주셔서 감사합니다. 모두가 데이터베이스 연결 문제로 어려움을 겪고 있습니다.