Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive i formati di dati di input e le conversioni implicite dei tipi di dati supportati da dwloader Command-Line Loader quando carica i dati in PDW. Le conversioni implicite dei dati si verificano quando i dati di input non corrispondono al tipo di dati nella tabella di destinazione PDW di SQL Server. Usare queste informazioni durante la progettazione del processo di caricamento per assicurarsi che i dati vengano caricati correttamente in SQL Server PDW.
Inserire valori letterali in tipi binari
La tabella seguente definisce i tipi letterali accettati, il formato e le regole di conversione per il caricamento di un valore letterale in una colonna PDW di tipo binary (n) o varbinary(n).
| Tipo di dati di input | Esempi di dati di input | Conversione in tipo di dati binary o varbinary |
|---|---|---|
| Valore letterale binario | [0x]hexidecimal_string Esempio: 12Ef o 0x12Ef |
Il prefisso 0x è facoltativo. La lunghezza dell'origine dati non può superare il numero di byte specificati per il tipo di dati. Se la lunghezza dell'origine dati è inferiore alla dimensione del tipo di dati binario, i dati vengono riempiti a destra con zeri per raggiungere la dimensione del tipo di dati. |
Inserire valori letterali in tipi di data e ora
I valori letterali di data e ora sono rappresentati usando valori letterali stringa in formati specifici, racchiusi tra virgolette singole. Le tabelle seguenti definiscono i tipi letterali, il formato e le regole di conversione consentiti per il caricamento di un valore letterale data o ora in una colonna di tipo datetime, smalldatetime, date, time, datetimeoffset o datetime2. Le tabelle definiscono il formato predefinito per il tipo di dati specificato. Altri formati che è possibile specificare sono definiti nella sezione Formati datetime. I valori letterali di data e ora non possono includere spazi iniziali o finali. I valori date, smalldatetime e Null non possono essere caricati in modalità a larghezza fissa.
Tipo di dati datetime
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo datetime. Una stringa vuota ('') viene convertita nel valore predefinito '1900-01-01 12:00:00.000'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore.
| Tipo di dati di input | Esempi di dati di input | Conversione in tipo di dati datetime |
|---|---|---|
| Stringa letterale in formato datetime | 'aaaa-MM-gg hh:mm:ss[.fff]' Esempio: '2007-05-08 12:35:29.123' |
Le cifre frazionarie mancanti vengono impostate su 0 quando viene inserito il valore. Ad esempio, il valore letterale '2007-05-08 12:35' viene inserito come '2007-05-08 12:35:00.000'. |
| Stringa letterale nel formato smalldatetime | 'aaaa-MM-gg hh:mm' Esempio: '2007-05-08 12:35' |
I secondi e le cifre frazionarie rimanenti vengono impostati su 0 quando viene inserito il valore. |
| Stringa letterale in formato data | 'aaaa-MM-gg' Esempio: '2007-05-08' |
I valori di ora (ora, minuti, secondi e frazioni) vengono impostati su 12:00:00.000 quando viene inserito il valore. |
| Stringa letterale in formato datetime2 | 'aaaa-MM-gg hh:mm:ss.fffffff' Esempio: '2007-05-08 12:35:29.1234567' |
I dati di origine non possono superare tre cifre frazionarie. Ad esempio, il valore letterale '2007-05-08 12:35:29.123' verrà inserito, ma il valore '2007-05-8 12:35:29.1234567' genera un errore. |
Tipo di dati smalldatetime
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo smalldatetime. Una stringa vuota ('') viene convertita nel valore predefinito '1900-01-01 12:00'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore.
| Tipo di dati di input | Esempi di dati di input | Conversione al tipo di dati smalldatetime |
|---|---|---|
| Stringa letterale nel formato smalldatetime | 'aaaa-MM-gg HH:mm' o 'aaaa-MM-gg HH:mm:ss' Esempio: '2007-05-08 12:00' o '2007-05-08 12:00:15' |
I dati di origine devono avere valori per anno, mese, data, ora e minuto. I secondi sono facoltativi e, se presente, devono essere impostati sul valore 00. Qualsiasi altro valore genera un errore. I secondi sono facoltativi. Durante il caricamento in una colonna smalldatetime, dwloader arrotonda per eccesso i secondi e le frazioni di secondo. Ad esempio, 1999-01-05 20:10:35.123 verrà caricato come 01-05 20:11. |
| Stringa letterale in formato data | 'aaaa-MM-gg' Esempio: '2007-05-08' |
I valori di ora (ora, minuti, secondi e frazioni) vengono impostati su 0 quando il valore viene inserito. |
Tipo di dati date
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo date. Una stringa vuota ('') viene convertita nel valore predefinito '1900-01-01'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore.
| Tipo di dati di input | Esempi di dati di input | Conversione al tipo di dato date |
|---|---|---|
| Stringa letterale in formato data | 'aaaa-MM-gg' Esempio: '2007-05-08' |
Tipo di dati ora
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo time. Una stringa vuota ('') viene convertita nel valore predefinito '00:00:00.0000'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore.
| Tipo di dati di input | Esempi di dati di input | Conversione del tipo di dati "time" |
|---|---|---|
| Stringa letterale in formato orario | 'hh:mm:ss.fffffff' Esempio: '12:35:29.1234567' |
Se l'origine dei dati ha una precisione minore o uguale (numero di cifre frazionarie) rispetto alla precisione del tipo di dati time, i dati vengono riempiti con zeri a destra. Ad esempio, un valore letterale '12:35:29.123' viene inserito come '12:35:29.1230000'. |
Tipo di dati datetimeoffset
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo datetimeoffset (n). Il formato predefinito è 'aaaa-MM-gg hh:mm:ss.fffffff {+|-}hh:mm'. Una stringa vuota ('') viene convertita nel valore predefinito '1900-01-01 12:00:00:00.0000000 +00:00'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore. Il numero di cifre frazionarie dipende dalla definizione di colonna. Ad esempio, una colonna definita come datetimeoffset (2) avrà due cifre frazionarie.
| Tipo di dati di input | Esempi di dati di input | Conversione in tipo di dati datetimeoffset |
|---|---|---|
| Stringa letterale in formato datetime | 'aaaa-MM-gg hh:mm:ss[.fff]' Esempio: '2007-05-08 12:35:29.123' |
Le cifre frazionarie e i valori di offset mancanti vengono impostati su 0 quando viene inserito il valore. Ad esempio, il valore letterale '2007-05-08 12:35:29.123' viene inserito come '2007-05-08 12:35:29.1230000 +00:00'. |
| Stringa letterale nel formato smalldatetime | 'aaaa-MM-gg hh:mm' Esempio: '2007-05-08 12:35' |
Secondi, le cifre frazionarie rimanenti e i valori di offset vengono impostati su 0 quando viene inserito il valore. |
| Stringa letterale in formato data | 'aaaa-MM-gg' Esempio: '2007-05-08' |
I valori di ora (ora, minuti, secondi e frazioni) vengono impostati su 0 quando il valore viene inserito. Ad esempio, il valore letterale '2007-05-08' viene inserito come '2007-05-08 00:00:00.0000000 +00:00'. |
| Stringa letterale in formato datetime2 | 'aaaa-MM-gg hh:mm:ss.fffffff' Esempio: '2007-05-08 12:35:29.1234567' |
I dati di origine non possono superare il numero specificato di secondi frazionari nella colonna datetimeoffset. Se la fonte dati ha un numero di frazioni di secondo minore o uguale, i dati vengono riempiti a destra con zeri. Ad esempio, se il tipo di dati è datetimeoffset (5), il valore letterale '2007-05-08 12:35:29.123 +12:15' viene inserito come '12:35:29.12300 +12:15'. |
| Stringa letterale nel formato datetimeoffset | 'yyyy-MM-dd hh:mm:ss.fffffff {+|-} hh:mm' Esempio: '2007-05-08 12:35:29.1234567 +12:15' |
I dati di origine non possono superare il numero specificato di secondi frazionari nella colonna datetimeoffset. Se la fonte dati ha un numero di frazioni di secondo minore o uguale, i dati vengono riempiti a destra con zeri. Ad esempio, se il tipo di dati è datetimeoffset (5), il valore letterale '2007-05-08 12:35:29.123 +12:15' viene inserito come '12:35:29.12300 +12:15'. |
Tipo di dati datetime2
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo datetime2 (n). Il formato predefinito è 'aaaa-MM-gg hh:mm:ss.fffffff'. Una stringa vuota ('') viene convertita nel valore predefinito '1900-01-01 12:00:00'. Le stringhe che contengono solo spazi vuoti (' ') generano un errore. Il numero di cifre frazionarie dipende dalla definizione di colonna. Ad esempio, una colonna definita come datetime2 (2) avrà due cifre frazionarie.
| Tipo di dati di input | Esempi di dati di input | Conversione al tipo di dati datetime2 |
|---|---|---|
| Stringa letterale in formato datetime | 'aaaa-MM-gg hh:mm:ss[.fff]' Esempio: '2007-05-08 12:35:29.123' |
I secondi frazionari sono facoltativi e vengono impostati su 0 quando viene inserito il valore. |
| Stringa letterale nel formato smalldatetime | 'aaaa-MM-gg hh:mm' Esempio: '2007-05-08 12' |
I secondi facoltativi e le cifre frazionarie rimanenti vengono impostati su 0 quando viene inserito il valore. |
| Stringa letterale in formato data | 'aaaa-MM-gg' Esempio: '2007-05-08' |
I valori di ora (ora, minuti, secondi e frazioni) vengono impostati su 0 quando il valore viene inserito. Ad esempio, il valore letterale '2007-05-08' viene inserito come '2007-05-08 12:00:00.0000000'. |
| Stringa letterale in formato datetime2 | 'aaaa-MM-gg hh:mm:ss:fffffff' Esempio: '2007-05-08 12:35:29.1234567' |
Se l'origine dati contiene componenti di dati e ora minori o uguali al valore specificato in datetime2(n), i dati vengono inseriti; in caso contrario viene generato un errore. |
Formati data e ora
Dwloader supporta i formati di dati seguenti per i dati di input che sta caricando in SQL Server PDW. Altri dettagli sono elencati dopo la tabella.
| datetime | smalldatetime | date | datetime2 | datetimeoffset |
|---|---|---|---|---|
| [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fff] | [M[M]]M-[d]d-[yy]yy HH:mm[:00] | [M[M]]M-[d]d-[yy]yyy | [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] | [M[M]]M-[d]d-[yy]yy HH:mm:ss[.fffffff] zzz |
| [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fff][tt] | [M[M]]M-[d]d-[yy]yy hh:mm[:00][tt] | [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] | [M[M]]M-[d]d-[yy]yy hh:mm:ss[.fffffff][tt] zzz | |
| [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fff] | [M[M]]M-[yy]yy-[d]d HH:mm[:00] | [M[M]]M-[yy]yy-[d]d | [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] | [M[M]]M-[yy]yy-[d]d HH:mm:ss[.fffffff] zzz |
| [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fff][tt] | [M[M]]M-[yy]yy-[d]d hh:mm[:00][tt] | [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] | [M[M]]M-[yy]yy-[d]d hh:mm:ss[.fffffff][tt] zzz | |
| [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fff] | [yy]yy-[M[M]]M-[d]d HH:mm[:00] | [yy]yy-[M[M]]M-[d]d | [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] | [yy]yy-[M[M]]M-[d]d HH:mm:ss[.fffffff] zzz |
| [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fff][tt] | [yy]yy-[M[M]]M-[d]d hh:mm[:00][tt] | [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] | [yy]yy-[M[M]]M-[d]d hh:mm:ss[.fffffff][tt] zzz | |
| [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fff] | [yy]yy-[d]d-[M[M]]M HH:mm[:00] | [yy]yy-[d]d-[M[M]]M | [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] | [yy]yy-[d]d-[M[M]]M HH:mm:ss[.fffffff] zzz |
| [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fff][tt] | [yy]yy-[d]d-[M[M]]M hh:mm[:00][tt] | [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] | [yy]yy-[d]d-[M[M]]M hh:mm:ss[.fffffff][tt] zzz | |
| [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fff] | [d]d-[M[M]]M-[yy]yy HH:mm[:00] | [d]d-[M[M]]M-[yy]yy | [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] | [d]d-[M[M]]M-[yy]yy HH:mm:ss[.fffffff] zzz |
| [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fff][tt] | [d]d-[M[M]]M-[yy]yy hh:mm[:00][tt] | [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] | [d]d-[M[M]]M-[yy]yy hh:mm:ss[.fffffff][tt] zzz | |
| [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fff] | [d]d-[yy]yy-[M[M]]M HH:mm[:00] | [d]d-[yy]yy-[M[M]]M | [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] | [d]d-[yy]yy-[M[M]]M HH:mm:ss[.fffffff] zzz |
| [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fff][tt] | [d]d-[yy]yy-[M[M]]M hh:mm[:00][tt] | [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] | [d]d-[yy]yy-[M[M]]M hh:mm:ss[.fffffff][tt] zzz |
Details:
Per separare i valori di mese, giorno e anno, è possibile usare ' - ', ' / ' o ' . '. Per semplicità, la tabella usa solo il separatore ' - ' .
Per specificare il mese come testo, utilizzare tre o più caratteri. I mesi con 1 o 2 caratteri vengono interpretati come un numero.
Per separare i valori temporali, usare il simbolo ' : ' .
Le lettere tra parentesi quadre sono facoltative.
Le lettere 'tt' designano
AM|PM|am|pm. AM è l'impostazione predefinita. Quando si specifica "tt", il valore dell'ora (hh) deve essere compreso nell'intervallo compreso tra 0 e 12.Le lettere 'zzz' designano l'offset del fuso orario per il fuso orario corrente del sistema nel formato
{+|-}HH:ss].
Inserire valori letterali in tipi numerici
Le tabelle seguenti definiscono le regole di formato e conversione predefinite per il caricamento di un valore letterale in una colonna PDW di SQL Server che usa un tipo numerico.
tipo di dati bit
La tabella seguente definisce il formato predefinito e le regole per il caricamento di valori letterali in una colonna di tipo bit. Una stringa vuota ('') o una stringa che contiene solo spazi vuoti (' ') viene convertita in 0.
| Tipo di dati di input | Esempi di dati di input | Conversione al tipo di dati bit |
|---|---|---|
| Valore letterale stringa in formato integer | ffffffffff Esempio: '1' o '321' |
Un valore intero formattato come valore letterale stringa non può contenere un valore negativo. Ad esempio, il valore '-123' genera un errore. Un valore maggiore di 1 viene convertito in 1. Ad esempio, il valore '123' viene convertito in 1. |
| Stringa letterale | 'VERO' o 'FALSO' Esempio: 'true' |
Il valore 'TRUE' viene convertito in 1; il valore 'FALSE' viene convertito in 0. |
| Valore letterale integer | fffffffn Esempio: 1 o 321 |
Un valore maggiore di 1 o minore di 0 viene convertito in 1. Ad esempio, i valori 123 e -123 vengono convertiti in 1. |
| Valore letterale decimale | fffnn.fffn Esempio: 1234.5678 |
Un valore maggiore di 1 o minore di 0 viene convertito in 1. Ad esempio, i valori 123.45 e -123.45 vengono convertiti in 1. |
Tipo di dati decimale
La tabella seguente definisce le regole per il caricamento di valori letterali in una colonna di tipo decimal (p,s). Le regole di conversione dei dati sono uguali a per SQL Server. Per altre informazioni, vedere Conversione dei tipi di dati (motore di database) su MSDN.
| Tipo di dati di input | Esempi di dati di input |
|---|---|
| Valore letterale integer | 321312313123 |
| Valore letterale decimale | 123344.34455 |
tipi di dati float e reali
La tabella seguente definisce le regole per il caricamento di valori letterali in una colonna di tipo float o real. Le regole di conversione dei dati sono uguali a per SQL Server. Per altre informazioni, vedere Conversione dei tipi di dati (motore di database) su MSDN.
| Tipo di dati di input | Esempi di dati di input |
|---|---|
| Valore letterale integer | 321312313123 |
| Valore letterale decimale | 123344.34455 |
| Valore letterale a virgola mobile | 3.12323E+14 |
int, bigint, tinyint, smallint, tipi di dati
La tabella seguente definisce le regole per il caricamento di valori letterali in una colonna di tipo int, bigint, tinyint o smallint. L'origine dati non può superare l'intervallo consentito per il tipo di dati specificato. Ad esempio, l'intervallo per tinyint è compreso tra 0 e 255 e l'intervallo per int è -2.147.483.648 a 2.147.483.647.
| Tipo di dati di input | Esempi di dati di input | Conversione in tipi di dati Integer |
|---|---|---|
| Valore letterale integer | 321312313123 | |
| Valore letterale decimale | 123344.34455 | I valori a destra del separatore decimale vengono troncati. |
tipi di dati 'money' e 'smallmoney'
I valori letterali money sono rappresentati come stringa di numeri con un separatore decimale facoltativo e un simbolo di valuta facoltativo come prefisso. L'origine dati non può superare l'intervallo consentito per il tipo di dati specificato. Ad esempio, l'intervallo per smallmoney è -214.748.3648 a 214.748.3647 e l'intervallo per i soldi è -922,3 Da 37.203.685.477.5808 a 922.337.203.685.477.5807. La tabella seguente definisce le regole per il caricamento di valori letterali in una colonna di tipo money o smallmoney.
| Tipo di dati di input | Esempi di dati di input | Conversione al tipo di dato money o smallmoney |
|---|---|---|
| Valore letterale integer | 321312 | Cifre mancanti dopo il separatore decimale sono impostate su 0 quando viene inserito il valore. Ad esempio, il valore letterale 12345 viene inserito come 12345.0000 |
| Valore letterale decimale | 123344.34455 | Se il numero di cifre dopo il separatore decimale supera 4, il valore viene arrotondato fino al valore più vicino. Ad esempio, il valore 1233444.34455 viene inserito come 123344.3446. |
| Valore letterale del denaro | $123456,7890 | Il simbolo della valuta non è inserito insieme al valore. Se il numero di cifre dopo il separatore decimale supera 4, il valore viene arrotondato fino al valore più vicino. |
Inserire valori letterali in tipi stringa
Le tabelle seguenti definiscono le regole di formato e conversione predefinite per il caricamento di un valore letterale in una colonna PDW di SQL Server che usa un tipo stringa.
tipi di dati char, varchar, nchar e nvarchar
La tabella seguente definisce il formato e le regole predefiniti per il caricamento di valori letterali in una colonna di tipo char, varchar, nchar e nvarchar. La lunghezza dell'origine dati non può superare le dimensioni specificate per il tipo di dati. Se la lunghezza dell'origine dati è minore delle dimensioni del tipo di dati char o nchar , i dati vengono riempiti a destra con spazi vuoti per raggiungere le dimensioni del tipo di dati.
| Tipo di dati di input | Esempi di dati di input | Conversione in tipi di dati character |
|---|---|---|
| Stringa letterale | Formato: 'stringa di caratteri' Esempio: 'abc' |
NA |
| Stringa letterale Unicode | Formato: N'stringa di caratteri' Esempio: N'abc' |
NA |
| Valore letterale integer | Formato: ffffffffn Esempio: 321312313123 |
NA |
| Valore letterale decimale | Formato: ffffff.fffffffff Esempio: 12344.34455 |
NA |
| Valore letterale del denaro | Formato: $ffffff.fffnn Esempio: $123456,99 |
Il simbolo di valuta facoltativo non viene inserito insieme al valore. Per inserire il simbolo di valuta, inserire il valore come stringa letterale. Corrisponderà al formato del caricatore, che considera ogni valore letterale come valore letterale stringa. Le virgole non sono consentite. Se il numero di cifre dopo il separatore decimale supera 2, il valore viene arrotondato fino al valore più vicino. Ad esempio, il valore 123,946789 viene inserito come 123,95. Solo lo stile predefinito 0 (senza virgole e 2 cifre dopo il separatore decimale) è consentito quando si usa la funzione CONVERT per inserire valori letterali money. |
Osservazioni generali
dwloader esegue le stesse conversioni implicite eseguite da SMP SQL Server, ma non supporta tutte le conversioni implicite supportate da SMP SQL Server.