İki şema arasında herhangi bir sütun farkını bulmak için oracle sözlüğü görünümlerini kullandım. Veri türü tutarsızlıklarını senkronize ederken, hem NUMBER hem de INTEGER veri türünün all_tab_columns/user_tab_columns/dba_tab_columns dosyasında yalnızca NUMBER olarak depolandığından, bir şema/sütunun sayı veri türü ve başka bir şema/sütunun tamsayı veri türüne sahip olduğu durumlarda veri türü tutarsızlıklarını eşitlemenin zor olduğunu tespit ettim . Şema'nın karşılaştırması sırasında veri türü uyumsuzluğunu gösterir. Lütfen, sözlük görünümlerini kullanarak başka bir alternatif formu varsa veya veri türünün tam sayı olup olmadığını belirlemek için sözlük görünümlerinden belirli bir özellik kullanılabileceğini varsayalım.Oracle sözlük görünümlerinde sayı ve tamsayı veri türü arasındaki fark
cevap
Tamsayı yalnızca SQL standardı için yani Oracle tarafından kullanım dışı bırakılmıştır.
Numara kullanmalısınız.
Tamsayılar, Oracle'ın sahne arkası tarafından yine de numara olarak saklanır.
Çoğu zaman, ID'ler için ints depolandığında ve bunlar herhangi bir param olmaksızın tanımlandığında - teoride, ondalık değerlerin kaydedilemediğini görmek için meta veri görünümlerinin ölçeği ve hassas sütunlarına bakabilirsiniz - ancak% 99 zamanın bu yardım etmeyecek.
Yukarıda yorumlandığı gibi (38,0) sütun veya benzeri (örneğin, ondalık değeri olmayan sütunlara izin verilir) sütunları arayabilirdiniz, ancak bu yalnızca hangi sütunların ondalık basamakları alamayacağını ve hangi sütunların tanımlanacağını belirtmeyecek; INTS saklanabilir.
Öneri: Sayı sütunları üzerinde bir veri profili yapın. Böyle bir şey:
select max(case when trunc(column_name,0)=column_name then 0 else 1 end) as has_dec_vals
from table_name
Bu benim oracle documentation den ne var, ancak Oracle 10g sürümü 2 içindir: (Bir SAYISI değişken tanımladığınızda
, onun hassasiyet (p) belirtebilir ve ölçek s) Yeterli, ama gereksiz, büyük olması için. Hassas, anlamlı basamakların sayısıdır. Ölçek olumlu veya olumsuz olabilir. Pozitif ölçek, ondalık noktasının sağındaki basamak sayısını tanımlar; Negatif ölçek, ondalık noktasının solunda yukarı veya aşağı yuvarlanabilecek basamak sayısını tanımlar.
NUMARA veri türü, Oracle Database standart kitaplıkları tarafından desteklenir ve SQL'de olduğu gibi çalışır. Bir metin veya INTEGER veri türü uygun olmadığında boyutlar ve temsilciler için kullanılır. Genellikle hesaplamalarda (tahminler ve toplamalar gibi) kullanılmayan değişkenlere atanır ve veritabanının yuvarlama davranışına uyması gereken veya yüksek derecede hassasiyet gerektiren değişkenler için kullanılır. SAYI değişkenlere
- Analitik çalışma alanı hesaplamaları SAYISI değerlerdir çünkü diğer sayısal veri türleri daha yavaştır: bir değişkene SAYISI veri türünü atamak karar verirken, performansı en yükseğe çıkarmak amacıyla akılda aşağıdaki gerçekleri tutmak donanımdan (hız için) ziyade yazılımda (doğruluk için) hesaplanır.
- Veriler, bir analitik çalışma alanından NUMBER veri türüne sahip ilişkisel bir sütuna getirildiğinde, bir dönüşüm adımı gerekli olmadığından, veriler, analitik çalışma alanında NUMBER veri türünde zaten olduğunda performans en iyisidir.
Bu, sözlük görünümlerini sorgularken NUMBER ile INTEGER arasında ayrım yapmakla ilgili bir şey var mı? Başvurulan sayfa DW OLAP –
notu mu? Testlerimden, data_precision'ın null olması gerektiği, aksi takdirde DESCRIBE vb. NUMBER gösterdiği anlaşılıyor. –
i buldum iyi açıklama şudur:
INTEGER ve SAYISI betwen fark nedir
? Ne zaman NUMBER kullanmalı ve INTEGER'i ne zaman kullanmalıyız? Biz girdi HepSAYISI mağazaları ... burada yorumlarımı bildirmek istiyoruz. Ölçek -84 ila 127'dir. Ancak INTEGER tam sayıya yuvarlar. INTEGER ölçeği 0'dır. INTEGER, NUMBER (38,0) ile eşdeğerdir. INTEGER kısıtlı sayıda demektir. Ondalık yer yuvarlanır. Ancak NUMBER kısıtlı değil.
- integer (12,2) => 12
- integer (12.5) => 13
- integer (12.9) => 13
- integer (12.4) => 12
- NUMARASI (12,2) => 12.2
- NUMARASI (12.5) => 12.5
- NUMARASI (12.9) => 12.9
- SAYISI (12.4) => 12.4
TAMSAYILI hep SAYISI sonra yavaştır. Tamsayı, eklenmiş kısıtlı bir sayı olduğu için. Kısıtlamayı zorlamak için ek CPU döngüleri gerekir. Hiç bir fark görmedim, ancak INTEGER sütununda birkaç milyonlarca kayıt yüklediğimizde bir fark olabilir. Girişin tam sayı olduğundan emin olmamız gerekiyorsa, INTEGER gitmek için en iyi seçenektir. Aksi takdirde, NUMBER veri türüyle sadık kalabiliriz. İşte
linkYani, OP soruya dönmek için size çözüm data_scale = 0 için kontrol etmektir söylediğini içindir o –
- 1. Özet Veri Türü (ADT) ve Veri Yapısı arasındaki fark nedir?
- 2. SQLite içinde "Metin" ve "Dize" veri türü arasındaki fark
- 3. İki sözlük listesi arasındaki fark nasıl bulunur?
- 4. ORACLE SQL - tablo oluşturma geçersiz veri türü
- 5. Haskell'de tür ve veri tipi arasındaki fark nedir?
- 6. Veri Türü Özel Denetim Özelliği Sayı
- 7. Bir Oracle ve Microsoft şeması arasındaki fark nedir?
- 8. Oracle JDK 8 ve Open JDK 8 arasındaki fark nedir?
- 9. JMeter: Sayı Sayısı ve Sabit Çıkış Zamanlayıcısı'nı kullanma arasındaki fark
- 10. Veri girişleri ve veri kayıtları arasındaki fark nedir?
- 11. Dize [] ve [dize] arasındaki fark
- 12. arasındaki fark nedir?
- 13. İşlem ve TransactionScope Arasındaki Fark
- 14. BFMatcher ve FlannBasedMatcher arasındaki fark
- 15. Rails'de zaman veri türü
- 16. Python'da Bytearray ve List Arasındaki Fark
- 17. Android'de herhangi bir sözlük veri türü var mı?
- 18. Oracle Oracle'ın% TÜRÜ
- 19. VBScript'in + ve & operatörü arasındaki fark nedir?
- 20. numpy.genfromtxt ve numpy.loadtxt Arasındaki Fark ve
- 21. SVN güncellemesi ile veri havuzu arasındaki senkronizasyon arasındaki fark nedir?
- 22. XeLaTeX ve pdfLaTeX arasındaki fark
- 23. javax.sql ve java.sql arasındaki fark?
- 24. netTcpContextBinding ve netTcpBinding arasındaki fark
- 25. Sürücü ve sağlayıcı arasındaki fark
- 26. HttpCookie ve Çerez arasındaki fark?
- 27. typedef arasındaki fark ve tanımlamak
- 28. Python'da {} ve [] arasındaki fark nedir?
- 29. Redis ve kafka arasındaki fark
- 30. mapM ve forM arasındaki fark
geçerli: 'Number' olan' Oracle Dahili olarak 'dönüştürmek Yani Integer',' IBM ürünleri, SQL/DS ve DB2 ANSI datatypes' ve veri türleri 'iken torpil için veri türü Alanı'nda inşa NUMBER için tamsayı (38) '.Ben tek yolu ÇİFT iTİBAREN DDL ('', '', 'TABLO') DBMS_METADATA.GET_DDL SEÇ' dan gerçek veri türü almak için düşünüyorum; ' –
Bu Son seçenek Ben sadece birkaç tutarsızlık var gibi düşünüyorum ve farklı tablolardan sütun pozisyonu almak için performans sıkıcı olarak etkileyecektir. – Anand
Merhaba Uzmanlar, Başka tavsiye lütfen ... – Anand