2017-06-19 3 views

Antwort

2

Check Lassen Sie sich durch ein langen Spaltennamen zu erzeugen:

#standardSQL 
SELECT 
    STRING_AGG(
    CODE_POINTS_TO_STRING([MOD(c, 26) + TO_CODE_POINTS('a')[OFFSET(0)]]), 
    '') 
FROM UNNEST(GENERATE_ARRAY(0, 127)) AS c; 
+----------------------------------------------------------------------------------------------------------------------------------+ 
|                f0_                | 
+----------------------------------------------------------------------------------------------------------------------------------+ 
| abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx | 
+----------------------------------------------------------------------------------------------------------------------------------+ 

Jetzt können wir es in einer Abfrage verwenden:

bq query --use_legacy_sql=false "SELECT 1 AS abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx;" 
Waiting on <job ID> ... (1s) Current status: DONE 
+----------------------------------------------------------------------------------------------------------------------------------+ 
| abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx | 
+----------------------------------------------------------------------------------------------------------------------------------+ 
|                                1 | 
+----------------------------------------------------------------------------------------------------------------------------------+ 

Okay, also 128 Zeichen ist alles in Ordnung. Was ist, wenn wir einen mehr benutzen?

bq query --use_legacy_sql=false "SELECT 1 AS abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxy;" 
Waiting on <job ID> ... (0s) Current status: DONE 
BigQuery error in query operation: Error processing job 'bigquerytestdefault:bqjob_r5056943d6408b629_0000015cc29ae7ae_1': Invalid field name "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxy". Fields 
must contain only letters, numbers, and underscores, start with a letter or underscore, and be at most 128 characters long. 

Ich bekomme einen Fehler über die Länge des Namens. Dies ist dokumentiert als Teil der tables reference, sprich:

[Erforderlich] Der Feldname. Der Name darf nur Buchstaben (a-z, A-Z), Zahlen (0-9) oder Unterstriche (_) enthalten und muss mit einem Buchstaben oder Unterstrich beginnen. Die maximale Länge beträgt 128 Zeichen.

Verwandte Themen