CIAO,
Sto cercando di importare dati codificati Base64 in JMP, ma sembra che i dati vengano troncati a 255 caratteri. La colonna del database contenente la stringa base64 ha una lunghezza di 546.168 caratteri. C'è un modo per aumentare il limite di caratteri per la colonna della tabella jmp?
Grazie,
Jackie
Si tratta di un database o di un'importazione CSV?
Se un database SQL, questi potrebbero essere utili.
Immagine dell'array di byte dal database a JMP
download di colonne di grandi dimensioni dal database tramite odbc
Se si tratta di dati CSV, come li apri? Condividere l'istruzione o la finestra di dialogo open() potrebbe essere d'aiuto. Anche lo script sorgente dall'importazione errata. JMP dovrebbe essere in grado di leggere stringhe molto grandi; come hai determinato la lunghezza della stringa importata?
Ecco un rapido test utilizzando 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(molti) dati in base 64 nella colonna centrale
lo script sorgente è simile a questo
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" )
)
)
Sospetto che vorrai usarlo

Credo che possa gestire un flusso di input fino a 2 miliardi di caratteri. Controlla gli esempi nell'indice degli script.
Grazie @Craige_Hales !
Sto interrogando dal server del database in JMP.
Ho provato a convertirlo in esadecimale, ma legge solo fino a 255 caratteri
Domanda:
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" );
Ecco cosa mi ritrovo:

JMP legge i limiti fino a 255 caratteri
"89504E470D0A1A0A0000000D4948445200000DAC000007D0080600000094E2F9EB0000200049444154785EECDD07905545DA3FE0171024A818565D3388A262465 D54CC3960045D54740D8062C29C3127CC8B8A39E79CF39A139815B3A288620EA0E420FFEABB9FFB37CCBD3373A7679881A7ABBEFAB68AD36F773FA7E7CE19E"
Ho allegato i valori esadecimali originali che voglio interrogare nella tabella jmp.
Grazie mille per la soluzione
Benvenuto, e quale parte ha funzionato per te? Grazie per tutti i dettagli che puoi condividere. Tutti hanno difficoltà con le connessioni al database.