Tüm Ürünler
Search
Belge Merkezi

Object Storage Service:SelectObject

Son Güncelleme:Oct 01, 2026

Hedef nesne üzerinde SQL deyimlerini çalıştırır ve sonuçları döndürür.

Kullanım notları

  • Nesne üzerinde okuma izninizin olması gerekir.

  • Geçerli bir SQL deyimi HTTP durum kodu 206 döndürür. Geçersiz veya eşleşmeyen bir SQL deyimi HTTP durum kodu 400 döndürür.

  • SelectObject API'sini kullanarak veri sorgularken, kaynak nesneden taranan gerçek veri miktarına göre ücretlendirilirsiniz. Daha fazla bilgi için bkz. Veri işleme ücretleri.

İstek sözdizimi

İstek sözdizimi CSV ve JSON nesneleri için farklılık gösterir.

  • CSV nesneleri için istek sözdizimi

    POST /object?x-oss-process=csv/select HTTP/1.1 
    HOST: BucketName.oss-cn-hangzhou.aliyuncs.com 
    Date: time GMT
    Content-Length: ContentLength
    Content-MD5: MD5Value 
    Authorization: Signature
    <?xml  version="1.0"  encoding="UTF-8"?>
    <SelectRequest>    
        <Expression>Base64-encoded SQL statement. Example: c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=</Expression>
        <InputSerialization>
            <CompressionType>None|GZIP</CompressionType>
            <CSV>            
                <FileHeaderInfo>
                    NONE|IGNORE|USE
                </FileHeaderInfo>
                <RecordDelimiter>Base64-encoded character</RecordDelimiter>
                <FieldDelimiter>Base64-encoded character</FieldDelimiter>
                <QuoteCharacter>Base64-encoded character</QuoteCharacter>
                <CommentCharacter>Base64-encoded character</CommentCharacter>
                <Range>line-range=start-end|split-range=start-end</Range>
                <AllowQuotedRecordDelimiter>true|false</AllowQuotedRecordDelimiter>
            </CSV>   
            </InputSerialization>
            <OutputSerialization>
                 <CSV>
                 <RecordDelimiter>Base64-encoded character</RecordDelimiter>
                 <FieldDelimiter>Base64-encoded character</FieldDelimiter>
    
                </CSV>
                <KeepAllColumns>false|true</KeepAllColumns>
                <OutputRawData>false|true</OutputRawData>
                <EnablePayloadCrc>true</EnablePayloadCrc>
                <OutputHeader>false</OutputHeader>
           </OutputSerialization>
         <Options>
            <SkipPartialDataRecord>false</SkipPartialDataRecord>
            <MaxSkippedRecordsAllowed>
            max allowed number of records skipped
            </MaxSkippedRecordsAllowed>
        </Options>
    </SelectRequest>
  • JSON nesneleri için istek sözdizimi

    POST /object?x-oss-process=json/select HTTP/1.1 
    HOST: BucketName.oss-cn-hangzhou.aliyuncs.com 
    Date: time GMT
    Content-Length: ContentLength
    Content-MD5: MD5Value 
    Authorization: Signature
    <?xml  version="1.0"  encoding="UTF-8"?>
    <SelectRequest>    
        <Expression>
            Base64-encoded SQL statement. Example: c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=
        </Expression>
        <InputSerialization>
            <CompressionType>None|GZIP</CompressionType>
            <JSON>
                <Type>DOCUMENT|LINES</Type>
                <Range>
                line-range=start-end|split-range=start-end
                </Range>
                <ParseJsonNumberAsString> true|false
                </ParseJsonNumberAsString>
            </JSON>
        </InputSerialization>
        <OutputSerialization>
            <JSON>
                <RecordDelimiter>
                    Base64 of record delimiter
                </RecordDelimiter>
            </JSON>
            <OutputRawData>false|true</OutputRawData>
                     <EnablePayloadCrc>true</EnablePayloadCrc>
        </OutputSerialization>
        <Options>
            <SkipPartialDataRecord>
                false|true
            </SkipPartialDataRecord>
            <MaxSkippedRecordsAllowed>
                max allowed number of records skipped
               </MaxSkippedRecordsAllowed>
            </Options>
    </SelectRequest>

İstek öğeleri

Öğe

Tür

Açıklama

SelectRequest

Container

SelectRequest isteğini depolayan konteyner.

Alt düğümler: Expression, InputSerialization ve OutputSerialization

Üst düğümler: yok

Expression

String

Base64 ile kodlanmış SQL deyimi.

Alt düğümler: yok

Üst düğümler: SelectRequest

InputSerialization

Container

İsteğe bağlı. Giriş serileştirme parametrelerini belirtir.

Alt düğümler: CompressionType, CSV ve JSON

Üst düğümler: SelectRequest

OutputSerialization

Container

İsteğe bağlı. Çıkış serileştirme parametrelerini belirtir.

Alt düğümler: CSV, JSON ve OutputRawData

Üst düğümler: SelectRequest

CSV(InputSerialization)

Container

İsteğe bağlı. CSV nesneleri için giriş serileştirme parametrelerini belirtir.

Alt düğümler: FileHeaderInfo, RecordDelimiter, FieldDelimiter, QuoteCharacter, CommentCharacter ve Range

Üst düğümler: InputSerialization

CSV(OutputSerialization)

Container

İsteğe bağlı. CSV nesneleri için çıkış serileştirme parametrelerini belirtir.

Alt düğümler: RecordDelimiter ve FieldDelimiter

Üst düğümler: OutputSerialization

JSON(InputSerialization)

Container

İsteğe bağlı. JSON nesneleri için giriş serileştirme parametrelerini belirtir.

Alt düğümler: Type, Range ve ParseJsonNumberAsString

JSON(OutputSerialization)

Container

İsteğe bağlı. JSON nesneleri için çıkış serileştirme parametrelerini belirtir.

Alt düğümler: RecordDelimiter

Type

Enumeration

Giriş JSON nesnesinin türü. Geçerli değerler: DOCUMENT ve LINES.

OutputRawData

Boolean

İsteğe bağlı. Ham verilerin dışa aktarılıp aktarılmayacağını belirtir. Varsayılan değer: false.

Alt düğümler: yok

Üst düğümler: OutputSerialization

Not
  • İstekte OutputRawData belirtirseniz Object Storage Service (OSS) verileri istek öğesine göre döndürür.

  • İstekte OutputRawData belirtmezseniz OSS otomatik olarak bir biçim seçer ve verileri seçilen biçimde yanıtta döndürür.

  • OutputRawData değerini true olarak ayarlarsanız ve gönderilen SQL deyiminin veri döndürmesi uzun sürerse HTTP isteği zaman aşımına uğrayabilir.

CompressionType

Enumeration

Nesnenin sıkıştırma türü. Geçerli değerler: None ve GZIP.

Alt düğümler: yok

Üst düğümler: InputSerialization

FileHeaderInfo

Enumeration

İsteğe bağlı. CSV üst bilgi bilgilerini belirtir.

Geçerli değerler:

  • Use: CSV nesnesi üst bilgi bilgisi içerir. CSV nesnesindeki sütun adlarını SelectObject işleminde sütun adı olarak kullanabilirsiniz.

  • Ignore: CSV nesnesi üst bilgi bilgisi içerir. CSV nesnesindeki sütun adları SelectObject işleminde sütun adı olarak kullanılamaz.

  • None: CSV nesnesi üst bilgi bilgisi içermez. Bu, varsayılan değerdir.

Alt düğümler: yok

Üst düğümler: CSV (giriş)

RecordDelimiter

String

İsteğe bağlı. Base64 ile kodlanmış satır sonu karakterini belirtir. Varsayılan değer: \n. Bu öğenin değeri kodlanmadan önce değer en fazla iki karakter uzunluğunda bir ANSI değeri olmalıdır. Örneğin Java'da satır sonunu belirtmek için \n kullanılır.

Alt düğümler: yok

Üst düğümler: CSV (giriş ve çıkış) ve JSON (çıkış)

FieldDelimiter

String

İsteğe bağlı. CSV nesnesi için Base64 ile kodlanmış sütun sınırlayıcısını belirtir. Varsayılan değer: ,. Bu öğenin değeri kodlanmadan önce değer bir karakter uzunluğunda bir ANSI değeri olmalıdır. Örneğin Java'da virgülü belirtmek için , kullanılır.

Alt düğümler: yok

Üst düğümler: CSV (giriş ve çıkış)

QuoteCharacter

String

İsteğe bağlı. CSV nesnesi için Base64 ile kodlanmış tırnak işaretini belirtir. Varsayılan değer: \". Bir CSV nesnesinde tırnak içine alınmış satır sonları ve sütun sınırlayıcıları normal karakterler olarak işlenir. Bu öğenin değeri kodlanmadan önce değer bir karakter uzunluğunda bir ANSI değeri olmalıdır. Örneğin Java'da tırnak işaretini belirtmek için \" kullanılır.

Alt düğümler: yok

Üst düğümler: CSV (giriş)

CommentCharacter

String

CSV nesnesinde kullanmak istediğiniz yorum karakteri. Bu öğenin değeri Base64 ile kodlanmalıdır. Bu öğe varsayılan olarak boştur.

Range

String

İsteğe bağlı. Sorgu aralığını belirtir. Desteklenen yöntemler:

Not

Range tabanlı sorgulanan nesneler için SelectMeta oluşturulmalıdır.

  • Satıra göre sorgulama: line-range=start-end. Örneğin line-range=10-20 ifadesi 10. satırdan 20. satıra kadar olan verilerin tarandığını gösterir.

  • Bölüme göre sorgulama: split-range=start-end. Örneğin split-range=10-20 ifadesi 10. bölümden 20. bölüme kadar olan verilerin tarandığını gösterir.

Başlangıç ve bitiş parametreleri dahildir. Yukarıdaki iki parametre range get içindeki range parametresiyle aynı biçimi kullanır.

Bu parametre yalnızca nesne CSV biçimindeyse veya JSON türü LINES ise kullanılabilir.

Alt düğümler: yok

Üst düğümler: CSV (giriş) ve JSON (çıkış)

KeepAllColumns

bool

İsteğe bağlı. CSV nesnesindeki tüm sütunların yanıta dahil edilip edilmeyeceğini belirtir. Varsayılan değer: false. Yalnızca SELECT yan tümcesindeki sütunlar değer içerir. Yanıttaki sütunlar sütun numarasına göre artan sırada sıralanır. Örnek:

select _5, _1 from ossobject.

KeepAllColumns değerini true olarak ayarlarsanız ve CSV nesnesinde altı sütun bulunuyorsa yukarıdaki SELECT yan tümcesi için aşağıdaki sonuç döndürülür:

1. sütunun değeri,,,,5. sütunun değeri,\n

Alt düğümler: yok

Üst düğümler: OutputSerialization (CSV)

EnablePayloadCrc

bool

Her karenin doğrulanması için CRC-32 değeri. İstemci her yükün CRC-32 değerini hesaplayabilir ve veri bütünlüğünü doğrulamak için bunu dahil edilen CRC-32 değeriyle karşılaştırabilir.

Alt düğümler: yok

Üst düğümler: OutputSerialization

Options

Container

Diğer isteğe bağlı parametreler.

Alt düğümler: SkipPartialDataRecord ve MaxSkippedRecordsAllowed

Üst düğümler: SelectRequest

OutputHeader

bool

CSV nesnesine ilişkin üst bilgi bilgilerinin yanıtın başında dahil edilip edilmeyeceğini belirtir.

Varsayılan değer: false.

Alt düğümler: yok

Üst düğümler: OutputSerialization

SkipPartialDataRecord

bool

Verilerin eksik olduğu satırların yoksayılıp yoksayılmayacağını belirtir. Bu parametre false olarak ayarlanırsa OSS satır verilerini null olarak işler ve hata bildirmez. Bu parametre true olarak ayarlanırsa veri içermeyen satırlar atlanır. Atlanan satır sayısı atlanabilecek maksimum satır sayısını aşarsa OSS hata bildirir ve verileri işlemeyi durdurur.

Varsayılan değer: false.

Alt düğümler: yok

Üst düğümler: Options

MaxSkippedRecordsAllowed

Int

Atlanabilecek maksimum satır sayısı. Bir satır SQL deyimi belirtilen türle eşleşmiyorsa veya bir satırdaki bir veya daha fazla sütun eksikse ve SkipPartialDataRecord değeri true ise satırlar atlanır. Atlanan satır sayısı bu parametrenin değerini aşarsa OSS hata bildirir ve verileri işlemeyi durdurur.

Not

Bir CSV nesnesindeki bir satır doğru biçimlendirilmemişse OSS verileri işlemeyi durdurur ve hata bildirir çünkü bu biçim hatası CSV nesnesinin hatalı ayrıştırılmasına neden olabilir. Örneğin satırdaki bir sütun sürekli tek sayıda tırnak işareti içerir. Bu parametre düzensiz verilere yönelik toleransı değiştirmek için kullanılabilir ancak geçersiz CSV nesneleri için yapılandırılamaz.

Varsayılan değer: 0.

Alt düğümler: yok

Üst düğümler: Options

ParseJsonNumberAsString

bool

JSON nesnesindeki tamsayı ve kayan noktalı sayıların dize olarak ayrıştırılıp ayrıştırılmayacağını belirtir. Sayılar ayrıştırıldığında kayan nokta hassasiyeti azalır. Ham verileri korumak için bu parametreyi true olarak ayarlayın. Ayrıştırılan verileri INT DOUBLE veya DECIMAL gibi gerekli türe dönüştürmek için SQL'de CAST işlevini kullanın.

Varsayılan değer: false.

Alt düğümler: yok

Üst düğümler: JSON

AllowQuotedRecordDelimiter

bool

CSV nesnesinin tırnak işaretleri (") içinde satır sonları içerebileceğini belirtir.

Örneğin bir sütunun değeri "abc\ndef" ise ve \n bir satır sonu ise bu parametreyi true olarak ayarlayın. Bu parametre false olarak ayarlanırsa daha verimli çok parçalı sorgular gerçekleştirmek üzere istek üst bilgisinde bir aralık belirtmek için SelectObject işlemini çağırabilirsiniz.

Varsayılan değer: true.

Alt düğümler: yok

Üst düğümler: InputSerialization

Yanıt gövdesi

  • Yanıt HTTP durum kodu 4xx döndürürse SQL sözdizimi denetimi başarısız oldu veya istekte hatalar var. Hata gövdesi biçimi GetObject hatalarıyla aynıdır.

  • Yanıt HTTP durum kodu 5xx döndürürse bir iç sunucu hatası oluştu. Hata gövdesi biçimi GetObject hatalarıyla aynıdır.

  • HTTP durum kodu 206 başarıyı gösterir.

    • x-oss-select-output-raw üst bilgisinin değeri true ise kare tabanlı veriler hariç nesne verileri döndürülür. İstemci verileri GetObject işlemiyle aynı şekilde alabilir.

    • x-oss-select-output-raw değeri false ise sonuç kareler olarak döndürülür.

  • Kareler Version|Frame-Type | Payload Length | Header Checksum | Payload | Payload Checksum<1 byte><--3 bytes--><---4 bytes----><-------4 bytes--><variable><----4bytes----------> biçiminde döndürülür.

    Not

    Karelerdeki Checksum değeri CRC-32'dir. Bir karedeki tüm tamsayılar büyük endian şeklindedir. Şu anda Version değeri 1'dir.

Kare türleri

SelectObject üç kare türünü destekler.

Kare türü

Değer

Yük biçimi

Açıklama

Data Frame

8388609

offset | data<-8 bytes><---variable->

SelectObject isteği için döndürülen veriler. offset parametresinin değeri mevcut tarama konumunu (dosya üst bilgisinden uzaklığı) gösteren 8 bitlik bir tamsayıdır. Bu parametre işlemin ilerlemesini bildirmek için kullanılır.

Continuous Frame

8388612

offset<----8 bytes-->

Bir işlemin ilerlemesini bildirmek ve HTTP bağlantısını sürdürmek için kullanılan kare. Bir sorgu isteği için 5 saniye içinde veri döndürülmezse bir continuous frame döndürülür.

End Frame

8388613

offset | total scanned bytes | http status code | error message<--8bytes-><--8bytes---------><----4 bytes--------><-variable------>

Bir end frame taranan baytlar ve olası hata mesajları dahil olmak üzere bir işlemin son durumunu döndürmek için kullanılır.

  • offset parametresi tarama tamamlandıktan sonraki son konum uzaklığını gösterir.

  • total scanned bytes parametresi taranan verilerin boyutunu gösterir.

  • http status code parametresi işlemin son durumunu gösterir.

    Not

    SelectObject bir akış işlemidir. Yanıt üst bilgisi gönderildiğinde yalnızca ilk veri bloğu işlenir. İlk veri bloğu SQL deyimiyle eşleşirse yanıt üst bilgisindeki HTTP durum kodu 206'dır. Bu durum kodu işlemin başarılı olduğunu gösterir. Ancak sonraki veri blokları geçersiz olabileceğinden son durum kodu 206 olmayabilir. Yanıt üst bilgisindeki durum kodu değiştirilemez. İşlemin son durumunu belirtmek için end frame içinde bir HTTP durum kodu bulunur. İstemci işlemin başarılı olup olmadığını belirlemek için end frame içindeki durum kodunu kullanır.

  • error message parametresi atlanan her satırın numarası ve toplam atlanan satır sayısı dahil olmak üzere hata mesajlarını gösterir.

    Not

    Bir end frame içinde yer alan hata mesajlarının biçimi ErrorCodes.DetailMessage şeklindedir. ErrorCodes bölümü virgül (,) ile ayrılmış bir veya daha fazla hata kodu içerir. ErrorCodes ve DetailMessage nokta (.) ile ayrılır.

Örnek istekler

CSV ve JSON nesneleri için örnekler:

  • CSV nesneleri için örnek istekler

    POST /oss-select/bigcsv_normal.csv?x-oss-process=csv%2Fselect HTTP/1.1
    Date: Fri, 25 May 2018 22:11:39 GMT
    Content-Type:
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    User-Agent: aliyun-sdk-dotnet/2.8.0.0(windows 16.7/16.7.0.0/x86;4.0.30319.42000)
    Content-Length: 748
    Expect: 100-continue
    Connection: keep-alive
    Host: host name
    <?xml version="1.0"?>
    <SelectRequest>
        <Expression>c2VsZWN0IGNvdW50KCopIGZyb20gb3Nzb2JqZWN0IHdoZXJlIF80ID4gNDU=
        </Expression>
        <InputSerialization>
            <Compression>None</Compression>
            <CSV>
                <FileHeaderInfo>Ignore</FileHeaderInfo>
                <RecordDelimiter>Cg==</RecordDelimiter>
                <FieldDelimiter>LA==</FieldDelimiter>
                <QuoteCharacter>Ig==</QuoteCharacter>
                <CommentCharacter>Iw==</CommentCharacter/>
            </CSV>
        </InputSerialization>
        <OutputSerialization>
            <CSV>
                <RecordDelimiter>Cg==</RecordDelimiter>
                <FieldDelimiter>LA==</FieldDelimiter>
                <QuoteCharacter>Ig==</QuoteCharacter>            
            </CSV>
            <KeepAllColumns>false</KeepAllColumns>
                <OutputRawData>false</OutputRawData>
        </OutputSerialization>
    </SelectRequest>
  • JSON nesneleri için örnek istekler

    POST /oss-select/sample_json.json?x-oss-process=json%2Fselect HTTP/1.1
    Host: host name
    Accept-Encoding: identity
    User-Agent: aliyun-sdk-python/2.6.0(Darwin/16.7.0/x86_64;3.5.4)
    Accept: */*
    Connection: keep-alive
    date: Mon, 10 Dec 2018 18:28:11 GMT
    authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
    Content-Length: 317
    <SelectRequest>
        <Expression>c2VsZWN0ICogZnJvbSBvc3NvYmplY3Qub2JqZWN0c1sqXSB3aGVyZSBwYXJ0eSA9ICdEZW1vY3JhdCc=
        </Expression>
        <InputSerialization>
        <JSON>
            <Type>DOCUMENT</Type>
        </JSON>
        </InputSerialization>
        <OutputSerialization>
        <JSON>
            <RecordDelimiter>LA==</RecordDelimiter>
        </JSON>
        </OutputSerialization>
        <Options />
    </SelectRequest>

SQL deyimi sözdizimi

Bir SelectObject SQL deyiminin genel formu SELECT select-list from table where_opt limit_opt şeklindedir.

Önemli

Aşağıdaki anahtar kelimeler değiştirilemez: SELECT ve where.

select_list: column name
            | column index (Example: _1, _2. column index applies only to CSV objects.)
            | json path (Example: s.contacts.firstname. json path applies only to JSON objects.)
            | function(column index | column name)
            | function(json_path) (applies only to JSON objects.)
            | select_list AS alias
Not

Aşağıdaki işlevler desteklenir: AVG, SUM, MAX, MIN, COUNT ve CAST (tür dönüştürme işlevi). COUNT sonrasında yalnızca yıldız işareti (*) belirtebilirsiniz.

table: OSSOBJECT

      | OSSOBJECT json_path (applies only to JSON objects.)

If you want to perform operations on CSV objects, you must use the OSSOBJECT table. If you want to perform operations on JSON objects including DOCUMENT and LINES type objects, you can specify json_path after OSSOBJECT. 

json_path: ['string '] (The quotation marks that are used to enclose a string can be deleted if the string does not include a space or an asterisk (*). In this case, ['string '] is equivalent to .'string '.)

          | [n] (indicates the nth element in an array. The value of n is counted from 0.)

          | [*] (indicates a child element in an array or object.)

          | .'string ' (The quotation marks that are used to enclose a string can be deleted if the string does not include a space or an asterisk (*).)

          | json_path jsonpath (You can concatenate multiple elements in a json path such as [n].property1.attributes[*].)
Where_opt:
| WHERE expr
expr:
| literal value
| column name
| column index
| json path (applies only to JSON objects.)
| expr op expr
| expr OR expr
| expr AND expr
| expr IS NULL
| expr IS NOT NULL
| (column name | column index | json path) IN (value1, value2, ...)
| (column name | column index | json path) NOT in (value1, value2, ...)
| (column name | column index | json path) between value1 and value2
| NOT (expr)
| expr op expr
| (expr)
| cast (column index |column name | json path | literal as INT|DOUBLE|)
  • op: aşağıdaki operatörleri içerir: >, <, >=, <=, ! =, =, ,, LIKE, +, -, *, /, % ve ||.

  • cast: CAST işlevini kullanarak bir sütundaki verileri bir türden başka bir türe dönüştürebilirsiniz.

  • Bir toplama işlevi ve limit kombinasyonu: Select avg(cast(_1 as int)) from ossobject limit 100 . Yukarıdaki deyim ilk 100 satırdaki ilk sütunun ortalamasını hesaplar. Bu işlev MySQL tarafından desteklenen deyimden farklıdır çünkü SelectObject işlemlerinde bir toplama işlevi için yalnızca tek bir satır döndürülür. Bu nedenle çıkış verisi boyutu için sınırlandırma yapılmaz. SelectObject'i çağırırken limit işlemi toplama işleminden önce gerçekleştirilir.

SQL deyimi sınırlamaları

SQL deyimleri aşağıdaki sınırlamalara sahiptir:

  • Yalnızca UTF-8 ile kodlanmış metin nesneleri ve GZIP biçiminde sıkıştırılmış UTF-8 metin nesneleri desteklenir. GZIP nesneleri için deflate biçimi desteklenmez.

  • Bir SQL deyimi kullanırken yalnızca tek bir nesne sorgulanabilir. Aşağıdaki yan tümceler desteklenmez: JOIN, ORDER BY, GROUP BY ve HAVING.

  • Bir WHERE yan tümcesi toplama koşulları içeremez. Örneğin aşağıdaki yan tümceye izin verilmez: WHERE max(cast(age as int)) > 100.

  • Bir SQL deyimi için en fazla 1.000 sütun belirtilebilir. Bir SQL deyimindeki sütun adı en fazla 1.024 bayt uzunluğunda olabilir.

  • Bir LIKE yan tümcesinde en fazla beş joker karakter (%) desteklenir. Yüzde işareti (%) ve yıldız işareti () sıfır veya daha fazla karakteri belirten joker karakterlerdir. ESCAPE anahtar kelimesi SQL LIKE yan tümceleri için desteklenir ve yüzde işaretleri (%), yıldız işaretleri () ve soru işaretleri (?) gibi özel karakterleri normal dizelere dönüştürmek için kullanılır.

  • Bir IN yan tümcesinde en fazla 1.024 sabit değer desteklenir.

  • SELECT sonrasında belirtilen Projection bir sütun adı, bir CSV sütun dizini (_1 veya _2 gibi), bir toplama işlevi veya bir CAST işlevi olabilir. select _1 + _2 from ossobject gibi diğer ifadeler desteklenmez.

  • Bir CSV nesnesi için maksimum sütun boyutu ve satır boyutu 256 KB'tır.

  • FROM sonrasında belirtilen JSON yolları maksimum boyutu 512 KB olan JSON düğümlerini destekler. Yol en fazla 10 düzey içerebilir ve bir dizi en fazla 5.000 öğe içerebilir. SELECT ve WHERE sonrasında belirtilen alanlar FROM sonrasında belirtilen JSON yollarına karşılık gelen düğümlerden gelmelidir.

  • Bir JSON nesnesinin SQL deyimlerinde SELECT veya WHERE ifadeleri dizi joker karakterlerini ([]) içeremez. Dizi joker karakterleri ([]) yalnızca FROM sonrasında belirtilen JSON yollarında bulunabilir. Örneğin select s.contacts[] from ossobject s yerine select from ossobject.contacts[*] kullanabilirsiniz.

  • Bir SQL deyiminin maksimum boyutu 16 KB'tır. WHERE sonrasında en fazla 20 ifade eklenebilir. Her deyim en fazla 10 düzey ve 100 toplama işlemini destekler.

Veri hatası işleme

Aşağıdaki senaryolar veri hatalarının nasıl işlendiğini açıklar.

  • Bir CSV nesnesindeki bazı satırlarda bazı sütunlar eksiktir.

    SkipPartialDataRecord belirtilmemişse veya false olarak ayarlanmışsa OSS eksik sütunların değerlerini null olarak işleyerek SQL deyimi içindeki ifadeleri hesaplar.

    SkipPartialDataRecord true olarak ayarlanmışsa OSS bazı sütunların eksik olduğu satırları yoksayar. Bu durumda MaxSkippedRecordsAllowed belirtilmemişse veya atlanan satır sayısından küçük bir değere ayarlanmışsa OSS HTTP durum kodu 400 göndererek veya HTTP durum kodu 400'ü end frame içine dahil ederek hata bildirir.

    select _1, _3 from ossobject SQL deyiminin yürütüldüğünü ve CSV nesnesindeki bir satırdaki verilerin "John, Company A" olduğunu varsayalım.

    • SkipPartialDataRecord false olarak ayarlanmışsa "John,\n" döndürülür.

    • SkipPartialDataRecord true olarak ayarlanmışsa bu satır atlanır.

  • Bir JSON nesnesinde bazı anahtarlar eksiktir.

    Bazı JSON nesneleri SQL deyimi içinde belirtilen anahtarları içermeyebilir.

    • SkipPartialDataRecord belirtilmemişse veya false olarak ayarlanmışsa OSS eksik anahtarları null olarak işleyerek SQL deyimi içindeki ifadeleri hesaplar.

    • SkipPartialDataRecord true olarak ayarlanmışsa OSS JSON düğümündeki verileri atlar. Bu durumda MaxSkippedRecordsAllowed belirtilmemişse veya atlanan satır sayısından küçük bir değere ayarlanmışsa OSS HTTP durum kodu 400 göndererek veya HTTP durum kodu 400'ü end frame içine dahil ederek hata bildirir.

    select s.firstName, s.lastName , s.age from ossobject.contacts[*] s SQL deyiminin yürütüldüğünü ve bir JSON düğümünün değerinin {"firstName":"John", "lastName":"Smith"} olduğunu varsayalım.

    • SkipPartialDataRecord belirtilmemişse veya false olarak ayarlanmışsa {"firstName":"John", "lastName":"Smith"} döndürülür.

    • SkipPartialDataRecord true olarak ayarlanmışsa bu satır atlanır.

    Not

    JSON nesneleri için bir isteğin döndürülen verilerindeki anahtarlar için çıktı JSON nesneleri yalnızca LINES olabilir. Çıktıdaki Key değeri aşağıdaki kurallara göre döndürülür:

    • select * from ossobject… SQL deyiminin yürütüldüğünü varsayalım. bir JSON nesnesine ({...}) karşılık geliyorsa JSON nesnesi döndürülür. bir dizeye veya bir diziye karşılık geliyorsa dize veya dizi DummyKey _1 olarak döndürülür.

      {"Age":5}select * from ossobject.Age s where s = 5 kullanılırsa *'a karşılık gelen 5 değeri bir JSON nesnesi olmadığından {"_1":5} döndürülür. select * from ossobject s where s.Age = 5 SQL deyimi yürütüldüğünde *'a karşılık gelen {"Age":5} döndürülür.

    • SQL deyimi select * kullanmıyor ancak sütunları belirtiyorsa döndürülen içerik {"{Column 1}": Value, "{Column 2}": Value...} biçimindedir. {Column n} aşağıdaki yöntemler kullanılarak oluşturulabilir:

      • Sütunun takma adı SELECT yan tümcesinde belirtilmişse takma ad geçerli olur.

      • Sütun adı bir JSON nesnesinin anahtarıysa bu anahtar çıktı anahtar değeri olarak kullanılır.

      • Sütun bir JSON dizisinin öğesi veya bir toplama işleviyse sütun adının önüne seri numarası (1'den başlayarak) ve alt çizgi (_) eklenerek çıktı anahtar değeri olarak kullanılır.

      {"contacts":{"Age":35, "Children":["child1", "child2", "child3"]}} kullanıldığını varsayalım:

      • select s.contacts.Age, s.contacts.Children[0] from ossobjects SQL deyimi yürütüldüğünde Age giriş JSON nesnesinin anahtarıdır ve Children[0] Children dizisinin ilk öğesini gösterir ve çıktı içeriğindeki ikinci sütundur. Bu durumda {"Age":35, "_2":"child1"} döndürülür.

      • select max(cast(s.Age as int)) from ossobject.contacts s SQL deyimi yürütüldüğünde ve seçilen sütun bir toplama işleviyse sütunun önüne _1 ve çıktıda seri numarası eklenir. Bu durumda {"_1":35} döndürülür.

      • SQL deyimi select s.contacts.Age, s.contacts.Children[0] as firstChild from ossobject içinde sütunun takma adı belirtildiğinde {"Age":35, "firstChild":"child1"} döndürülür.

    • JSON nesneleri ve SQL deyimleriyle eşleşen anahtarlar büyük/küçük harfe duyarlıdır. Örneğin "select s. Age" ve "select s. age" farklıdır.

  • Bir CSV nesnesindeki bazı sütunların veri türü SQL deyimi içinde belirtilen veri türüyle eşleşmiyor.

    Bir CSV nesnesindeki bir satırın veri türü SQL deyimi içinde belirtilen türle eşleşmiyorsa satır atlanır. Atlanan satır sayısı MaxSkippedRecordsAllowed değerini aşarsa OSS veri işlemeyi durdurur ve HTTP durum kodu 400 döndürür.

    select _1, _3 from ossobject where _3 > 5 SQL deyiminin yürütüldüğünü varsayalım. CSV nesnesindeki bir satırın değeri John, Company A, To be hired ise satırdaki üçüncü sütun tamsayı türünde olmadığından bu satır atlanır.

  • Bir JSON nesnesindeki bazı anahtarların veri türü SQL deyimi içinde belirtilen veri türüyle eşleşmiyor.

    select s.name from ossobject s where s.aliren_age > 5 SQL deyiminin yürütüldüğünü varsayalım. Bir JSON düğümünün değeri {"Name":"John", "Career_age": To be hired} ise bu düğüm atlanır.

Desteklenen zaman biçimleri

Aşağıdaki tabloda zaman biçimini belirtmeye gerek kalmadan bir zaman damgasına dönüştürülebilen biçimler listelenmiştir. Örneğin cast­('20121201' as timestamp) dizesi otomatik olarak 1 Aralık 2012'nin zaman damgası olarak ayrıştırılır.


Biçim


Açıklama


YYYYMMDD


yıl ay gün


YYYY/MM/DD


yıl/ay/gün


DD/MM/YYYY/


gün/ay/yıl


YYYY-MM-DD


yıl-ay-gün


DD-MM-YY


gün-ay-yıl


DD.MM.YY


gün. ay. yıl


HH:MM:SS.mss


saat:dakika:saniye. milisaniye


HH:MM:SS


saat:dakika:saniye


HH MM SS mss


saat dakika saniye milisaniye


HH.MM.SS.mss


saat. dakika. saniye. milisaniye


HHMM


saat dakika


HHMMSSmss


saat dakika saniye milisaniye


YYYYMMDD HH:MM:SS.mss


yıl ay gün saat:dakika:saniye. milisaniye


YYYY/MM/DD HH:MM:SS.mss


yıl/ay/gün saat:dakika:saniye. milisaniye


DD/MM/YYYY HH:MM:SS.mss


gün/ay/yıl saat:dakika:saniye. milisaniye


YYYYMMDD HH:MM:SS


yıl ay gün saat:dakika:saniye


YYYY/MM/DD HH:MM:SS


yıl/ay/gün saat:dakika:saniye


DD/MM/YYYY HH:MM:SS


gün/ay/yıl saat:dakika:saniye


YYYY-MM-DD HH:MM:SS.mss


yıl-ay-gün saat:dakika:saniye. milisaniye


DD-MM-YYYY HH:MM:SS.mss


gün-ay-yıl saat:dakika:saniye. milisaniye


YYYY-MM-DD HH:MM:SS


yıl-ay-gün saat:dakika:saniye


YYYYMMDDTHH:MM:SS


yıl ay gün T saat:dakika:saniye


YYYYMMDDTHH:MM:SS.mss


yıl ay gün T saat:dakika:saniye. milisaniye


DD-MM-YYYYTHH:MM:SS.mss


gün-ay-yıl T saat:dakika:saniye. milisaniye


DD-MM-YYYYTHH:MM:SS


gün-ay-yıl T saat:dakika:saniye


YYYYMMDDTHHMM


yıl ay gün T saat dakika


YYYYMMDDTHHMMSS


yıl ay gün T saat dakika saniye


YYYYMMDDTHHMMSSMSS


yıl ay gün T saat dakika saniye milisaniye


ISO8601-0

yıl-ay-gün T saat:dakika+saat:dakika veya yıl-ay-gün T saat: dakika-saat:dakika

"+" işareti geçerli saat dilimindeki yerel saatin standart UTC saatinden sonra olduğunu gösterir. "-" işareti geçerli saat dilimindeki yerel saatin standart UTC saatinden önce olduğunu gösterir. Bu biçimde ISO8601-0 kullanılabilir.


ISO8601-1

yıl-ay-gün T saat:dakika+saat:dakika veya yıl-ay-gün T saat: dakika-saat:dakika

"+" işareti geçerli saat dilimindeki yerel saatin standart UTC saatinden sonra olduğunu gösterir. "-" işareti geçerli saat dilimindeki yerel saatin standart UTC saatinden önce olduğunu gösterir. Bu biçimde ISO 8601-1 kullanılabilir.


CommonLog


Örnek: 28/Feb/2017:12:30:51 +0700


RFC822


Örnek: Tue, 28 Feb 2017 12:30:51 GMT


?D/?M/YY


gün/ay/yıl; burada gün ve ay bir veya iki basamaklı olabilir.


?D/?M/YY ?H:?M


gün/ay/yıl/saat:dakika; burada gün, ay, saat ve dakika bir veya iki basamaklı olabilir.


?D/?M/YY ?H:?M:?S


gün/ay/yıl/saat:dakika:saniye; burada gün, ay, saat, dakika ve saniye bir veya iki basamaklı olabilir.

Aşağıdaki tabloda hata oluşmasına neden olabilecek biçimler listelenmiştir. Bu biçimlerdeki dizeleri kullanırken bir zaman biçimi belirtmeniz gerekir. Örneğin cast('20121201' as timestamp format 'YYYYDDMM') deyimi 20121201 dizesini yanlışlıkla 12 Ocak 2012 olarak ayrıştırır.


Biçim


Açıklama


YYYYDDMM


yıl gün ay


YYYY/DD/MM


yıl/gün/ay


MM/DD/YYYY


ay/gün/yıl


YYYY-DD-MM


yıl-gün-ay


MM-DD-YYYY


ay-gün-yıl


MM.DD.YYYY


ay. gün. yıl

Hata kodları

SelectObject hata kodlarını iki şekilde döndürür:

  • HTTP durum kodu yanıt üst bilgisine ve hata kodu yanıt gövdesine dahil edilir; bu diğer OSS istekleriyle aynıdır. Bu şekilde döndürülen hata kodları geçersiz bir SQL deyimi veya veri hataları gibi giriş hatalarının oluştuğunu gösterir.

  • Hata kodu yanıt gövdesinin end frame'ine dahil edilir. Bu şekilde döndürülen hata kodları verilerin yanlış olduğunu veya SQL deyimi içinde belirtilen veri türüyle eşleşmediğini gösterir. Örneğin SQL deyimi içinde türü tamsayı olarak ayarlanmış bir sütunda bir dize bulunmaktadır. Bu durumda verilerin bir kısmı işlenir ve ardından HTTP durum kodu 206 ile işlenen veriler istemciye gönderilir.

InvalidCSVLine gibi hata kodları CSV nesnesi içindeki hata satırının konumuna bağlı olarak yanıt üst bilgisinde bir HTTP durum kodu veya end frame içinde bir durum kodu olarak döndürülebilir.


ErrorCode


Açıklama


HTTP Durum Kodu


End Frame İçindeki Http Durum Kodu


InvalidSqlParameter

Belirtilen SQL parametresinin mevcut olmadığına dair hata mesajı döndürüldü.

İstekteki SQL deyimi null, SQL deyiminin boyutu üst sınırı aştı veya SQL deyimi Base64 ile kodlanmadı.


400


Yok


InvalidInputFieldDelimiter

Giriş CSV nesnesi geçersiz sütun sınırlayıcıları içerdiğine dair hata mesajı döndürüldü.

Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 1 bayttan büyük.


400


Yok


InvalidInputRecordDelimiter


Giriş CSV nesnesi geçersiz satır sınırlayıcıları içerdiğine dair hata mesajı döndürüldü. Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 2 bayttan büyük.


400


Yok


InvalidInputQuote


Giriş CSV nesnesi geçersiz tırnak işaretleri içerdiğine dair hata mesajı döndürüldü. Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 1 bayttan büyük.


400


Yok


InvalidOutputFieldDelimiter


Çıkış CSV nesnesi geçersiz sütun sınırlayıcıları içerdiğine dair hata mesajı döndürüldü. Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 1 bayttan büyük.


400


Yok


InvalidOutputRecordDelimiter


Çıkış CSV nesnesi geçersiz satır sınırlayıcıları içerdiğine dair hata mesajı döndürüldü. Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 2 bayttan büyük.


400


Yok


UnsupportedCompressionFormat


Compression parametresinin değeri NONE veya GZIP değil. Değer büyük/küçük harfe duyarlı değildir.


400


Yok


InvalidCommentCharacter


CSV nesnesi geçersiz yorum karakterleri içerdiğine dair hata mesajı döndürüldü. Parametre Base64 ile kodlanmadı veya parametre çözüldükten sonra boyutu 1 bayttan büyük.


400


Yok


InvalidRange


Range parametresinin önünde line-range= veya split-range= yok veya aralık değeri Range için HTTP standardına uymuyor.


400


Yok


DecompressFailure


Compression değeri GZIP ve nesne çıkarılamıyor.


400


Yok


InvalidMaxSkippedRecordsAllowed


MaxSkippedRecordsAllowed değeri bir tamsayı değil.


400


Yok


SelectCsvMetaUnavailable


Range parametresi belirtildiğinde nesne CSV Meta içermiyor. Önce CreateSelectObjectMeta işlemini çağırın.


400


Yok


InvalidTextEncoding


Nesne UTF-8 ile kodlanmamış.


400


Yok


InvalidOSSSelectParameters


EnablePayloadCrc ve OutputRawData parametreleri true olarak ayarlandı. Bu durum çakışmalara neden oluyor.


400


Yok


InternalError


Bir OSS sistem hatası oluştu.


500 veya 206


500 veya Yok


SqlSyntaxError


Base64 ile çözülen SQL deyiminin sözdizimi geçersiz.


400


Yok


SqlExceedsMaxInCount


SQL IN yan tümcesine dahil edilen değerlerin sayısı 1.024'ü aştı.


400


Yok


SqlExceedsMaxColumnNameLength


Sütun adının boyutu 1.024 baytı aştı.


400


Yok


SqlInvalidColumnIndex


SQL deyimi içindeki sütun dizini 1 bayttan küçük veya 1.000 bayttan büyük.


400


Yok


SqlAggregationOnNonNumericType


Sayısal olmayan bir sütunda toplama işlevi kullanıldı.


400


Yok


SqlInvalidAggregationOnTimestamp


Zaman damgası sütununda SUM veya AVG toplama işlevi kullanıldı.


400


Yok


SqlValueTypeOfInMustBeSame


SQL IN yan tümcesine farklı türlerde değerler dahil edildi.


400


Yok


SqlInvalidEscapeChar


SQL LIKE yan tümcesinde soru işareti (?), yüzde işareti (%) veya yıldız işareti (*) gibi geçersiz bir kaçış karakteri belirtildi.


400


Yok


SqlOnlyOneEscapeCharIsAllowed


SQL LIKE yan tümcesindeki kaçış karakterinin boyutu 1 bayttan büyük.


400


Yok


SqlNoCharAfterEscapeChar


SQL LIKE yan tümcesinde kaçış karakterinden sonra hiçbir karakter belirtilmedi.


400


Yok


SqlInvalidLimitValue


SQL Limit yan tümcesinden sonra belirtilen sayı 1'den küçük.


400


Yok


SqlExceedsMaxWildCardCount


SQL LIKE yan tümcesindeki yıldız işaretlerinin (*) veya yüzde işaretlerinin (%) sayısı üst sınırı aştı.


400


Yok


SqlExceedsMaxConditionCount


SQL WHERE yan tümcesindeki koşullu ifadelerin sayısı üst sınırı aştı.


400


Yok


SqlExceedsMaxConditionDepth


SQL WHERE yan tümcesindeki koşullu ağacın derinliği üst sınırı aştı.


400


Yok


SqlOneColumnCastToDifferentTypes


Bir sütun SQL deyimine CAST işlevi dahil edilerek farklı türlere dönüştürüldü.


400


Yok


SqlOperationAppliedToDifferentTypes


SQL deyimi içinde farklı türlerdeki iki nesne için bir operatör kullanıldı. Örneğin bu hata kodu _col1 > 3 içindeki col1 bir dize ise döndürülür.


400


Yok


SqlInvalidColumnName


SQL deyimi içinde kullanılan bir sütun adı CSV nesnesinin üst bilgisinde bulunmuyor.


400


Yok


SqlNotSupportedTimestampFormat


SQL CAST yan tümcesinde belirtilen zaman damgası biçimi desteklenmiyor.


400


Yok


SqlNotMatchTimestampFormat


SQL CAST yan tümcesinde belirtilen zaman damgası biçimi zaman damgası dizesiyle eşleşmiyor.


400


Yok


SqlInvalidTimestampValue


SQL CAST yan tümcesinde zaman damgası biçimleri belirtilmedi ve belirtilen dize bir zaman damgasına dönüştürülemiyor.


400


Yok


SqlInvalidLikeOperand


SQL LIKE yan tümcesinde sol taraftaki sütun adları veya dizinler belirtilmedi, belirtilen sol taraftaki sütun dize türünde değil veya LIKE yan tümcesindeki sağ taraftaki sütun dize türünde.


400


Yok


SqlInvalidMixOfAggregationAndColumn


SQL SELECT yan tümcesi hem toplama işlevleri hem de toplama olmayan işlevler için sütun adları ve dizinler içeriyor.


400


Yok


SqlExceedsMaxAggregationCount


SQL SELECT yan tümcesine dahil edilen toplama işlevlerinin sayısı üst sınırı aştı.


400


Yok


SqlInvalidMixOfStarAndColumn


Aynı SQL deyimi içinde yıldız işareti (*), sütun adı ve sütun dizini bulunuyor.


400


Yok


SqlInvalidKeepAllColumnsWithAggregation


SQL deyimi toplama işlevleri içeriyor ve KeepAllColumns parametresi true olarak ayarlandı.


400


Yok


SqlInvalidKeepAllColumnsWithDuplicateColumn


SQL deyimi tekrarlayan sütun adları veya sütun dizinleri içeriyor ve KeepAllColumns parametresi true olarak ayarlandı.


400


Yok


SqlInvalidSqlAfterAnalysis


SQL deyimi karmaşık ve ayrıştırılan SQL deyimi desteklenmiyor.


400


Yok


InvalidArithmeticOperand


SQL deyimi sayısal olmayan sabitler veya sütunlar üzerinde gerçekleştirilen aritmetik işlemler içeriyor.


400


Yok


SqlInvalidAndOperand


SQL deyimi içinde AND operatörüyle birleştirilen ifadeler Boolean türünde değil.


400


Yok


SqlInvalidOrOperand


SQL deyimi içinde OR operatörüyle birleştirilen ifadeler Boolean türünde değil.


400


Yok


SqlInvalidNotOperand


SQL deyimi içinde NOT operatörüyle birleştirilen ifadeler Boolean türünde değil.


400


Yok


SqlInvalidIsNullOperand


SQL deyimi bir sabit üzerinde IS NULL operatörüne dayalı işlemler belirtiyor.


400


Yok


SqlComparerOperandTypeMismatch


SQL deyimi farklı türlerdeki iki nesne üzerinde karşılaştırma operatörüne dayalı işlemler belirtiyor.


400


Yok


SqlInvalidConcatOperand


SQL deyimi birleştirme operatörü (||) ile birleştirilmiş iki sabit içeriyor.


400


Yok


SqlUnsupportedSql


SQL deyimi karmaşık ve oluşturulan SQL planının boyutu üst sınırı aştı.


400


Yok


HeaderInfoExceedsMaxSize


SQL deyimi içinde belirtilen üst bilgi bilgilerinin boyutu üst sınırı aştı.


400


Yok


OutputExceedsMaxSize


Çıktıdaki bir satırın boyutu üst sınırı aştı.


400


Yok


InvalidCsvLine


CSV nesnesindeki bir satır geçersiz veya satırın boyutu üst sınırı aştı ya da atlanan satır sayısı MaxSkippedRecordsAllowed değerini aştı.


400 veya 206


400 veya Yok


NegativeRowIndex


SQL deyimi içindeki dizi dizininin değeri negatif bir sayı.


400


Yok


ExceedsMaxNestedColumnDepth


SQL deyimi içindeki JSON nesnesinin iç içe geçmiş düzeylerinin sayısı üst sınırı aştı.


400


Yok


NestedColumnNotSupportInCsv


SQL deyimi nokta (.) içeren iç içe geçmiş sütunlar veya köşeli parantez ([]) içeren diziler içeriyor. Önceki karakterler CSV nesnelerinin SQL deyimleri için desteklenmez.


400


Yok


TableRootNodeOnlySupportInJson


JSON nesnelerinde From ossobject sonrasında kök düğüm yolu belirtilmedi.


400


Yok


JsonNodeExceedsMaxSize


JSON nesnesindeki kök düğümün boyutu üst sınırı aştı.


400 veya 206


400 veya Yok


InvalidJsonData


JSON verileri yanlış biçimlendirilmiş.


400 veya 206


400 veya Yok


ExceedsMaxJsonArraySize


JSON nesnesinin kök düğümündeki bir dizideki öğelerin sayısı üst sınırı aştı.


400 veya 206


400 veya Yok


WildCardNotAllowed


Yıldız işaretleri (*) JSON nesnesi için SQL SELECT yan tümcelerinde veya SQL WHERE yan tümcelerinde kullanılamaz. Örneğin aşağıdaki deyimi yürütürseniz bir hata döndürülür: select s.a.b[*] from ossobject where a.c[*] > 0.


400


Yok


JsonNodeExceedsMaxDepth


JSON nesnesinin kök düğümünün derinliği üst sınırı aştı.


400 veya 206


400 veya Yok

ossutil

SelectObject işlemine karşılık gelen ossutil komutu hakkında bilgi için bkz. select-object.