こんにちは、
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(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 にクエリを実行しています。
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 文字まで読み取り制限があります
「89504E470D0A1A0A0000000D4948445200000DAC000007D0080600000094E2F9EB0000200049444154785EECDD07905545DA3FE0171024A818565D3388A262465D54CC3960045D54740D8062C29C3127CC8B8A39E79CF39A139815B3A288620EA0E420FFEABB9FFB37CCBD3373A7679881A7ABBEFAB68AD36F773FA7E7CE19E」
jmp テーブルでクエリする元の 16 進値を添付しました。
ようこそ。どの部分がうまくいきましたか? 共有できる詳細があれば、ぜひ教えてください。誰もがデータベース接続に苦労しています。