sfd
Разница между VARCHAR и VARCHAR2 в ORACLE
Здравствуйте, друзья!
Всем хорошего понедельника! Предлагаю повторить разницу между типами данных VARCHAR и VARCHAR2 в ORACLE. А заодно расскажу ещё несколько интересных фактов!
Оба типа мы можем использовать в качестве типа данных при создании столбцов в таблице.
Тип VARCHAR2 - это аналог VARCHAR (тоже служит для хранения текстовой информации в столбце) и есть только в СУБД ORACLE.
ORACLE взял за основу VARCHAR и создал у себя такой же тип данных, но немного оптимизировал его.
Итак, VARCHAR2 есть только в ORACLE, то есть это Оракловый тип данных, аналогичный стандартному VARCHAR...
👻Про явное приведение типов 1️⃣ При работе со строками в sql для экономии памяти лучше ограничивать максимальную длину поля: varchar(100). В MS SQL Server также есть возможность указать varchar(max). Она расширяет количество символов, но тогда на это поле нельзя навесить индексы. 2️⃣ Если мы хотим поджойнить две таблицы, но поля имеют разные типы, то нужно кастить одно из них: SELECT * FROM test1 JOIN test2 ON cast(test1.id as varchar) = test2.id или ON test1.id = cast(test2.id as int) Некоторые бд сами подсвечивают ошибку при запуске запроса, а некоторые начинают его выполнение, но затрачивают сильно больше ресурсов на неявное преобразование. И запрос, который мог отработать за 5 минут, может отработать за 30 или не отработать вообще. Поэтому за соответствием типов важно следить🤓 #sql_tips