你好,
我正在嘗試將 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(a lot of) base 64 data in middle column中間列有(很多)base 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。
我嘗試將其轉換為十六進制,但它最多只能讀取 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 個字符
“89504E470D0A1A0A0000000D4948445200000DAC000007D0080600000094E2F9EB0000200049444154785CDEED079055702585712213216DDA 54CC3960045D54740D8062C29C3127CC8B8A39E79CF39A139815B3A288620EA0E420FFEABB9FFB37CCBD3373A7679881A7ABAB70FFEA
我已在 jmp 表中附加了要查詢的原始十六進位值。
歡迎,哪一部分對您有用?感謝您可以分享的任何詳細資訊。每個人都為資料庫連線而煩惱。