Создаем обычную вьюшку. create view TestView as Select Level as N from dual connect by Level < 10 Три следующих запроса работают нормально: Select * from TestView; Select N from TestView; Select n from TestView; Select «N» from TestView; Не понравилось нам название колонки – N, меняем вьюшку create or replace view TestView as Select [...]
Oracle. Оператор LIKE. Escape character.
Май 19, 2008 • Oracle
LIKE — простой условной оператор для сравнения по маске. С двумя символами: % — всё что угодно _ — один символ Я всё время считал, что escape character в Oracle это тот же процент (%). До тех пор пока не пришлось искать в строках этот процент и подчеркивание. После первого же запроса понял, что одновременно [...]
Oracle. OraOleDb, FetchSize и dotnet
Февраль 22, 2008 • Oracle, Базы данных
Простой запрос, три поля из трех таблиц, все строки VARCHAR2. Dotnet framework 2.0. OleDbDataReader. Первые сто строк вычитываются нормально, потом все идет крокозяблами. Думал поседею. Четыре разных сервера, три девятки, одна десятка, проявляется только на одном. Проблемы оказалась в параметре FetchSize (сколько строк возращать за одну вычитку), первый раз все вычитается правильно, все последующие вернут [...]
"Горизонтальные" функции в Oracle.
Январь 11, 2008 • Oracle
Сегодня обнаружил в коде функцию Coalesce. Ни разу не пользовался. Дословно – объединять. Почему объединять ума не приложу. Функция возвращает первое not null значение из списка, заменитель вложенных NVL функций. И теперь вместо: NVL(NVL(NVL(ColumnA, ColumnB) , ColumnC), ColumnD) можно написать: COALESCE(ColumnA, ColumnB, ColumnC, ColumnD) Функция «горизонтальная». « Горизонтальная» функция, потому что оперирует колонками (или n [...]
Oracle bad practice — комментарии.
Декабрь 21, 2007 • Oracle
Gojko Adzic составил очень любопытный документ Oracle SQL and PL/SQL Bad Practices. А я позволил себе немного его прокомментировать. Сколько людей — столько мнений. Однозначно разделить на bad и best practice не выйдет. Using non-deterministic functions directly in conditions. +1 Использование функций в условиях (WHERE) — зло и жестоко бьет по производительности. Catch-all error handling. [...]
TDD и базы данных
Декабрь 14, 2007 • Базы данных, Программирование
Почему все в качестве примера TTD и баз данных приводят конкатенацию строк в качестве примера? Это самая типичная операция для базы данных? Или просто копировать всегда удобнее? Я пытался найти приятный framework для тестирования года три, если не больше. Вы думаете, я много нашел? TSQLUnit Пример: CREATE PROCEDURE ut_testCapitalize AS BEGIN DECLARE @outStr VARCHAR(500) [...]
WHENEVER
Декабрь 7, 2007 • Oracle
Whenever — всякий раз. Не всякий раз, как оказалось. Очень простая задача, ловить все ошибки (что их можно было обрабатывать) в pl/sql скрипте, и потом в bat файле обрабатывать. Пробуем: 1 WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK; 2 3 DECLARE 4 a NUMBER(23,4); 5 BEGIN 6 a := 1/0; 7 END; 8 / 9 EXIT 10 [...]
-
Азбука. Буква Ф. Фортран
6:19 пп
-
Насколько крепкий Ваш пароль?
11:37 дп
-
WordPress backup – простейший способ.
7:11 пп
- Пароль для блондинки 5:32 пп
-
humans.txt vs robots.txt
11:16 дп
-
Best practices in application architecture
11:14 дп
-
humans.txt vs robots.txt
11:16 дп
-
Новый подход к написанию резюме
3:32 пп
-
Должен ли я работать бесплатно?
3:19 пп
-
ID для элементов HTML и BODY
11:39 дп
-
: Во-во, точно они! Логики нет, но зато есть способн...
-
Михаил: Но очень похоже на дизайнеров :). ...
-
: Та что-то не похоже на программиста использовать ф...
-
Michael de`Oz: Я всегда начинаю использовать что-то с прочтения и...
-
Батонэ: Я и принтер без инструкции пичкал чернилами и став...