Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Oracle |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 [4] 5 вперед Ctrl→ все |
env Member Откуда: Россия, Москва Сообщений: 5927 |
execute immediate ' ... to_char(:x) ...' using null Какой тип? |
||
5 окт 18, 11:35 [21696136] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
Ответ "мы не применяем функции к переменным в динамическом запросе" не рассматриваю. Если решение уже сделано проктологическо-ортопедическим методом, то и это тоже обязательно встретится. |
5 окт 18, 11:38 [21696143] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
ну хорошо, умник, поясни (даже не мне! а любому логически мыслящему челу, начинающему изучать оракл!). Почему конструкция типа SELECT * FROM ( select :x as Z from dual union all select :y as Z from dual ) WHERE Z IS NULL не требует явного приведения типа навроде "TO_CHAR( Z ) IS NULL" ( TO_DATE(), TO_NUMBER() и т.п. ). А в NDS это конвертация обязательна? ГДЕ ТУТ ЛОГИКА ТО???? Если все эти конвертирования TO_DATE(null), TO_NUMBER(null) (и тп.) дают И ТАК в итоге по любому NULL - то только я один вижу тут абсолютно ненужную "бюрократию"?!? Я понимаю, конечно, что к этому тут многие видать привыкли за долгие века бурлацкого программисткого труда... Но есть же и такая вещь как прогресс всё-таки! А то уже пора вводить новый хеш-тэг #ДедыКонвертили )))) P.S. и ещё раз, _последний раз_ повторяю: Я НЕ работаю в Оракл!!! Исходников этих в глаза не видел (подозреваю, что равно как и большинство тут дискутирующих, ибо не опенсоурс! ) Но _СИЛЬНО СОМНЕВАЮСЬ_ что это невозможно технически! Просто тупо забивают на удобство разработчика! Обычный унылый конформизм, короче. |
|||||
5 окт 18, 11:42 [21696148] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
во! Ну как и во многих других кривоватых ora-фишках: есть движения таки (от версии к версии)! Но меееееедленное, блин! :-( P.S. банально, но как тут не вспомнить: "если тебе плюют в спину, значит ты впереди"(с) ! ;-) |
||
5 окт 18, 11:45 [21696157] Ответить | Цитировать Сообщить модератору |
-2- Member Откуда: Сообщений: 14342 |
|
||
5 окт 18, 11:47 [21696163] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
Так ты, это, не плюй в спины. |
||
5 окт 18, 11:52 [21696179] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
DBAshnik, На тебе пример, поясни на его основе, как ленивые разработчики оракла должны были сделать тебе, паровозу прогресса, хорошо при использовании нетипизированых литералов. create or replace package tst is function f(x number) return number; function f(x date) return date; end; / create or replace package body tst is function f(x number) return number is begin return 3.14-nvl(x,1.07); end f; function f(x date) return date is begin return nvl(x, sysdate) + interval '1' day; end f; end; / declare v anydata; begin execute immediate 'select tst.f(:x) xx from dual' into v using null; -- execute immediate 'select tst.f(:x) xx from dual' into v using '20181005'; end; / |
5 окт 18, 12:01 [21696197] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
отлично-отлично! Вообще супер! Спасибо огромное за мего-наглядный пример!!! Честно говоря, меня уже давно подмывает написать серьёзный технико-психологический трактат о типичных психологических проблемах в АйТи. (не в последнюю очередь затронув тему почему, по отзывам многочисленных профессиональных психологов, у ойтишной братии, при прочих равных, зачастую так скверно обстоят дела с противоположным полом! ;-) ). Это вот именно и проблема многих фриков-умников: по настоящему умный человек никогда не будет лезть в технические дебри за аргументацией, высокомерно ожидая от всех и каждого своего высокого уровня, но постарается спуститься на уровень собеседника, сумеет взглянуть на вещи _его_(!) глазами и терпеливо сможет растолковать порой даже самую сложную проблему _простым_ языком аппелируя не консервативному "ну вот так есть и всегда так было" лишь к логике и здравому смыслу. |
||
5 окт 18, 12:02 [21696205] Ответить | Цитировать Сообщить модератору |
andrey_anonymous Member Откуда: Москва Сообщений: 17089 |
прибейте x и y переменные двух типов, между которыми нет implicit conversion, скажем, number и date - получите ответ.
1. Не конвертация. Определение типа переменной привязки. Вашему запросу (выше) без привязанных типизованных переменных тоже ничего не светит. 2. Не стоит путать SQL и PL/SQL. В SQL никакого NDS нет - это конструкция PL/SQL (и компонент "FACILITY" кода исключения, положившего начало этому топику, какбэ намекает: не ORA, а PLS). |
||||
5 окт 18, 12:03 [21696209] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
Ты уверен, что на твой уровень стоит спускаться? Объяснять бушмену почему нельзя попасть стрелой в Солнце, долгое, нудное и почти бессмысленное занятие, требующее сначала дать ему образование на уровне достаточном для восприятия хотя бы терминологии объясняющего. Но ты продолжай винить всё вокруг в том, что твоя стрела падает на землю и не сообщает истинной причины, почему она не долетела. |
||
5 окт 18, 12:08 [21696222] Ответить | Цитировать Сообщить модератору |
andrey_anonymous Member Откуда: Москва Сообщений: 17089 |
Постарайтесь взглянуть на проблему с другой стороны: "растолковать" что-либо возможно только тому, кто готов воспринимать пусть даже самые разжеванные и упрощенные объяснения, думать и тем самым "расти над собой". Растолковать же что-либо человеку, упорствующему в собственной интерпретации фактов и не готовому осмысливать услышанное, практически невозможно. |
||
5 окт 18, 12:09 [21696224] Ответить | Цитировать Сообщить модератору |
Elic Member Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ Сообщений: 28665 |
|
||
5 окт 18, 12:14 [21696229] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
ну очевидно, что в том редком случае ( не ошибусь, думаю, что проблема вызова перегруженых функций пакета это даже не 0.1% процента всех случаев применения NDS + "using" !!! ) , можно и выбросить _ясную и понятную_ error-мессагу, что мол " function ambiguously defined" (по аноглогии с пресловутым "column ambiguously defined" , которая возникает, как известно, отнюдь не во всех случаях когда не указан квалификатор таблицы и т.п. myTbl.MyColumn, а лишь при необходимости ) Я устал говорить: я НЕ ЗНАЮ как конкретно запаять это в оракле. ( когда меня устроят туда на летние сезонные подработки, сообщу вам тут... ))) если разрешат... ))) ) Но я знаю одно: "кто хочет что-то сделать - ищет средства для этого! Кто ничего не хочет - ищет причины"(с) |
||
5 окт 18, 12:14 [21696230] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
Так прекрати искать причины. |
||
5 окт 18, 12:16 [21696231] Ответить | Цитировать Сообщить модератору |
andrey_anonymous Member Откуда: Москва Сообщений: 17089 |
Неудачно, кмк. Сферический Паровоз в вакууме - это нечто, способное что-то двигать куда-то в даль. Персонаж же, созданный для нас ТС - типовой потребитель. Слегка перефразируя классиков - этакий "кадавр, неудовлетворенный ошибочно". |
||
5 окт 18, 12:17 [21696234] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
ну я же говорю: ВЫСОКОМЕРИЕ! |
||||
5 окт 18, 12:17 [21696235] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
то есть какая то из функций TO_DATE(null), TO_NUMBER(null) может дать в результате НЕ Null ?!??! Вот отсюда по-подробнее пожалуйста? ;-) |
||||
5 окт 18, 12:21 [21696244] Ответить | Цитировать Сообщить модератору |
env Member Откуда: Россия, Москва Сообщений: 5927 |
Да, именно, твоё высокомерие в убеждении, что твоя точка зрения единственно верная, без желания понять отвечающих и подумать - удручает. |
||
5 окт 18, 12:23 [21696248] Ответить | Цитировать Сообщить модератору |
-2- Member Откуда: Сообщений: 14342 |
Или выражения select sysdate-:var ? |
||
5 окт 18, 12:26 [21696252] Ответить | Цитировать Сообщить модератору |
andrey_anonymous Member Откуда: Москва Сообщений: 17089 |
Null Null-у Null Еще раз, мееедленно: берете свой тесткейс и прибиваете x и y типов number и date. Инициализируете NULL-ами. Выполняете. Дальше в идеале Вы должны осознать, что NULL - это особое ТИПИЗИРОВАННОЕ не-значение, хотя и представленное одним и тем же литералом, независимо от типа. Собственно, если бы "ленивые программисты oracle" не вводили бы единое ключевое слово/литерал NULL, а заставили бы писать "null_date", "null_number" и т.д., то у Вас путаницы бы не случилось и не пришлось бы осваивать сложные материи null-полиморфизма :) |
||
5 окт 18, 12:32 [21696263] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
вы опять заводите "рака за камень" уходя в детали. Мой спич _ЛИШЬ ТОЛЬКО_ о том, что если человече в состоянии вместо "null" подставить "to_date(null)" (ну или что там подходит по смыслу) то это же действо в состоянии сделать и fucking-computer в 21м веке!!!!!!! Даже не нося при этом гордое звание искусственного интеллекта! ;-))) |
||||
5 окт 18, 12:32 [21696264] Ответить | Цитировать Сообщить модератору |
andrey_anonymous Member Откуда: Москва Сообщений: 17089 |
Вам уже не один раз показали, что общее решение указанной задачи требует не просто интеллекта, но интеллекта, способного принимать решения в области создания ПО. Однажды такой интеллект появится и Вы, если доживете, потеряете работу. Потому предлагаю Вам слегка остыть в своем потребительском запале. |
||
5 окт 18, 12:37 [21696270] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
И да! Я таки сознательно (откинув все свои скилзы) становлюсь сейсас на позиции типового потребителя! Совершенно этого не стесняясь! Убеждён, что по настоящему хороший айтишник _обязан_ уметь это делать! Делать для юзера (платяшего бабки!) ту самую пресловутую кнопку "сделай мне всё зае...сь!" ))) А не входить блин в положение его величества архитектора софта и высокомерно чморя невежей-юзеров за непонимание/незнание всех тонкостей механизма переключения телевизора плоскогубцами! ))))) |
||||
5 окт 18, 12:39 [21696272] Ответить | Цитировать Сообщить модератору |
-2- Member Откуда: Сообщений: 14342 |
|
||||
5 окт 18, 12:39 [21696273] Ответить | Цитировать Сообщить модератору |
DBAshnik Member Откуда: Сообщений: 258 |
гы гы гы! ))) Ну спасибо хоть за откровенность! ))) Сплошные неолуддиты тут, походу ))))) |
||
5 окт 18, 12:41 [21696275] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 3 [4] 5 вперед Ctrl→ все |
Все форумы / Oracle | ![]() |