SAP Типи даних HANA: числові, символьні, десяткові

⚡ Розумний підсумок

SAP Типи даних HANA визначають, що може зберігати кожен стовпець, охоплюючи класифікації дати та часу, числові, логічні, символьні рядки, двійкові, великі об'єкти та багатозначні, кожна картаping до певного типу сховища стовпців.

  • 🗓️ Типи дати та часу: DATE, TIME, SECONDDATE та TIMESTAMP відрізняються точністю, яку вони зберігають.
  • 🔢 Числовий діапазон: Функції від TINYINT до BIGINT охоплюють цілі числа, тоді як DECIMAL, SMALLDECIMAL, REAL та DOUBLE обробляють дроби.
  • 🔤 Рядки символів: VARCHAR містить байти, а NVARCHAR — символи Юнікоду, обидва обмежені 5000.
  • 📦 Великі об'єкти: BLOB, CLOB, NCLOB, TEXT та BINTEXT зберігають дані, занадто великі для звичайного стовпця.
  • 🔍 Пошук увімкнено: TEXT, BINTEXT та SHORTTEXT підтримують повнотекстовий пошук, але лише в таблицях сховища стовпців.
  • ✍️ Ідентифікатори: Розділені ідентифікатори розміщуються в подвійних лапках і приймають будь-який символ; необмежені ідентифікатори повинні починатися з літери.
  • Правило цитування: Одинарні лапки розмежовують рядкове значення, а подвійні лапки — ідентифікатор.

SAP Типи даних HANA

В цьому SAP Навчальний посібник із типів даних HANA, ми дізнаємося:

1) SAP Типи даних HANA - SAP Типи даних HANA включають дату, час, числовий тип даних, логічний тип, рядок символів, двійкові типи даних тощо.

2) SAP Ідентифікатори HANA – Розмежовані ідентифікатори та нерозмежовані ідентифікатори

Типи даних в SAP ХАНА

In SAP База даних HANA, SQL Нижче наведені типи даних:

Класифікація Підкласифікація Тип даних SQL Тип магазину колонок Формат за замовчуванням
Типи дати і часу Дата ДАТА ПРОВЕДЕННЯ CS_DAYDATE "РРРР-ММ-ДД"
Time ЧАС CS_SECONDTIME "HH24:MI:SS"
Друге побачення ДРУГА ДАТА CS_LONGDATE "РРРР-ММ-ДД ГГ24:МІ:СС"
Часовий штамп ГРАФІК CS_SECONDDATE "РРРР-ММ-ДД HH24:MI:SS.FFn"
Числові типи Крихітне ціле число TINYINT CS_INT 8-бітове беззнакове ціле число, діапазон від 0 до 255
Мале ціле число СМАЛІНТ CS_INT 16-бітове ціле число зі знаком, діапазон від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
Ціле число INTEGER CS_INT 32-бітове ціле число зі знаком, діапазон від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
Велике ціле число ВЕЛИКИЙ CS_FIXED(18,0) 64-бітове ціле число зі знаком, діапазон від -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
Десятковий DECIMAL(p,s)
р-точність
s- масштаб
CS_FIXED(ps,s) Точність p може коливатися від 1 до 38.
Шкала s може коливатися від 0 до p SAP Десятковий тип даних HANA.
Якщо точність і масштаб не вказано, DECIMAL стає десятковим числом із плаваючою комою.
Малий десятковий МАЛИЙ ДЕСЯТКОВИЙ CS_SDFLOAT Це десяткове число з плаваючою комою. Точність і масштаб мають бути в діапазоні 1~16 для точності та -369~368 для масштабу залежно від збереженого значення. SMALLDECIMAL підтримується лише для таблиці зберігання стовпців.
Реальне число НЕРУХОМІСТЬ CS_FLOAT 32-розрядне число з плаваючою комою одинарної точності
Double Номер ПОДВІЙНИЙ CS_DOUBLE 64-розрядне число з плаваючою комою подвійної точності
Поплавок FLOAT(n) CS_DOUBLE Це 32-бітове або 64-бітове дійсне число. Де n визначає кількість бітів і має бути в діапазоні від 1 до 53.
Boolean Boolean BOOLEAN CS_INT ІСТИНА, НЕПРАВДА І НЕВІДОМО (НУЛЬ).
Символьний рядок Рядок символів змінної довжини VARCHAR (n) CS_STRING Цей тип даних довжини рядка HANA є рядком символів змінної довжини, де 'n' визначає максимальну довжину в байтах, а це ціле число від 1 до 5000.
Символ Unicode змінної довжини NVARCHAR(n) CS_STRING Рядок набору символів Unicode змінної довжини, де вказує максимальну довжину в символах і є цілим числом від 1 до 5000
Алфавітно-цифровий символ АЛФАНАМ (n) CS_ALPHANUM Буквено-цифрові символи змінної довжини, де n означає максимальну довжину та є цілим числом від 1 до 127
Короткий текст КОРОТКИЙ ТЕКСТ(n) CS_STRING Це рядок символів змінної довжини, який забезпечує функції текстового та рядкового пошуку. Цей тип даних можна визначити для таблиць сховища стовпців, але не для таблиць рядків.
Двійкові типи Двійковий текст VARBINARY(n) CS_RAW Зберігайте двійкові дані заданої максимальної довжини в байтах, де n означає максимальну довжину та є цілим числом від 1 до 5000.
Типи LOB (типи великих об'єктів) Бінарний LOB ЛИСТОК CS_RAW Великі обсяги двійкових даних
LOB персонажа КЛОБ CS_STRING Дані символів ASCII
LOB символів Unicode NCLOB CS_STRING Великий символьний об’єкт Unicode
TEXT TEXT CS_STRING Тип даних TEXT забезпечує функції текстового пошуку. Цей тип даних можна визначити для таблиць зберігання стовпців, але не для таблиць зберігання рядків.
БІНАРНІ текстові дані BINTEXT CS_STRING Тип даних BINTEXT подібний до типу даних TEXT і тому підтримує функції текстового пошуку, але можна вставляти двійкові дані. Цей тип даних можна визначити для таблиць стовпців, але не для таблиць рядків.
Багатозначні типи масив МАСІВ Він зберігає колекції значень одного типу даних, де кожен елемент пов’язаний точно з однією позицією. Масиви можуть містити значення NULL, як і за відсутності значення.

Вибір правильного SAP Тип даних HANA

У таблиці вище перелічено доступні варіанти. Правильний вибір має більше значення в SAP HANA, ніж у дисковій базі даних, оскільки кожен стовпець знаходиться в пам'яті, а занадто великий тип споживає обмежений ресурс у кожному рядку.

Чотири правила охоплюють більшість рішень:

  • Візьмемо найменший числовий тип, який підходить. Прапорець стану з п'ятьма можливими значеннями потребує TINYINT, а не INTEGER. У таблиці з мільярдом рядків різниця вимірюється в гігабайтах пам'яті.
  • Ніколи не зберігайте гроші в РЕАЛАХ або ПОДВІЙНИХ валютах. Числа з плаваючою комою не можуть точно представляти десяткові дроби, тому підсумки зміщуються на частки грошової одиниці. Використовуйте DECIMAL з явною точністю та масштабом.
  • Надавати перевагу NVARCHAR замість VARCHAR. VARCHAR рахує байти, а NVARCHAR рахує символи, тому будь-який текст, що не є ASCII, несподівано обрізається у VARCHAR. Сучасний SAP Релізи HANA трактують VARCHAR як NVARCHAR саме з цієї причини.
  • Зіставте точність дати з вимогою. DATE для календарного дня, SECONDDATE, де час доби має значення, і TIMESTAMP лише там, де дійсно використовується точність, менша за секунду. Кожен крок вгору вимагає місця для зберігання кожного рядка.

Великі типи об'єктів заслуговують на особливу обережність. Стовпець BLOB або NCLOB зручний, але важкий, а текстовий пошук за запитом TEXT або SHORTTEXT працює лише для таблиць сховищ стовпців, тому вибір сховища та вибір типу даних пов'язані. Варіанти сховища розглядаються в SAP HANA SQL навчальний посібник.

SAP Ідентифікатори HANA

Ідентифікатори використовуються для представлення імені в SQL оператор (наприклад, ім’я таблиці, ім’я перегляду, ім’я стовпця, ім’я індексу, ім’я синоніму, ім’я процедури, ім’я функції тощо)

Існує два типи ідентифікаторів SAP ХАНА: Ідентифікатори з роздільниками та Нерозмежовані ідентифікатори.

  • Розмежовані ідентифікатори – Він укладений у роздільник, Double Лапки “”. Ідентифікатор може містити будь-який символ, включаючи спеціальні.
  • Нерозмежовані ідентифікатори – Нерозмежовані ідентифікатори (ім’я таблиці, ім’я стовпця) мають починатися з літери та не можуть містити жодних символів, крім цифри або підкреслення «_».

Існує два типи лапок для розділення, як показано нижче:

  • Одинарні лапки (' ') – Використовується для розмежування рядка.
  • Double Лапки (" ")– Використовується для розмежування ідентифікаторів.

⚠️ Попередження: Необмежений ідентифікатор перетворюється на верхній регістр під час створення об'єкта. Створення таблиці від імені співробітника та подальший вибір «співробітник» у нижньому регістрі не вдається, оскільки збережене ім'я — EMPLOYEE. Або повністю уникайте подвійних лапок, або використовуйте їх послідовно.

Перетворення типів даних та поширені помилки

SAP HANA автоматично конвертує сумісні типи, але неявне перетворення є тихим джерелом неправильних результатів та повільних запитів. Явне перетворення робить намір видимим.

Дві функції виконують цю роботу. CAST перетворює значення на іменований тип, а TO_DATE, TO_VARCHAR, TO_DECIMAL та їхні споріднені типи перетворюють значення з необов'язковим рядком форматування.

-- Explicit conversion with CAST
SELECT CAST('1234' AS INTEGER) FROM DUMMY;

-- Conversion with an explicit format
SELECT TO_DATE('2026-07-21', 'YYYY-MM-DD') FROM DUMMY;

-- Number to string with fixed decimals
SELECT TO_DECIMAL(1234.5678, 10, 2) FROM DUMMY;

Чотири помилки пояснюють більшість проблем з конвертацією:

  1. Числове переповнення. Вставка числа 40000 у SMALLINT завершується помилкою, оскільки знаковий діапазон зупиняється на значенні 32 767. У повідомленні вказано назву стовпця, а не значення, тому спочатку перевірте визначення.
  2. Обрізання рядків. Завантаження тексту, довжина якого перевищує заявлену, викликає помилку, а не непомітно обрізає його. Порахуйте символи порівняно з NVARCHAR, а байти – порівняно з VARCHAR.
  3. Недійсний формат дати. Передавання рядка з неправильним шаблоном до TO_DATE завершується невдачею. Завжди надавайте маску форматування, а не покладайтеся на значення сеансу за замовчуванням.
  4. Неявне перетворення в реченні WHERE. Порівняння стовпця символів з числом змушує перетворювати кожен рядок, що перешкоджає ефективній фільтрації. Перетворюйте константу замість стовпця.

Символи порівняння, що використовуються в цих фільтрах, розглядаються в SAP Оператори HANA, і ширша платформа в SAP Підручник з HANA серії.

Поширені запитання

VARCHAR вимірює свій ліміт у байтах, а NVARCHAR – у символах Юнікоду. Для будь-якого тексту, який може містити символи, відмінні від ASCII, NVARCHAR є безпечним вибором, оскільки він не буде несподівано скорочуватися.

Використовуйте SECONDDATE, коли достатньо точності другого рівня, що охоплює більшість бізнес-подій. TIMESTAMP додає дробові секунди та потребує більше місця для зберігання кожного рядка великої таблиці.

Так. Профілювання вихідного файлу показує фактичні діапазони значень, довжини та формати, на основі яких ШІ пропонує найменший безпечний тип для кожного стовпця замість захисного завищеного значення за замовчуванням.

Так. Порівняння заявлених довжин зі значеннями, що фактично зберігаються, виділяє стовпці, які можуть скорочуватися, що важливо, оскільки кожен стовпець таблиці HANA зберігається в пам'яті.

TEXT, BINTEXT та SHORTTEXT забезпечують функції текстового пошуку. Усі три обмежені таблицями сховища стовпців і не можуть бути визначені в таблиці сховища рядків.

Підсумуйте цей пост за допомогою: