Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / можно ли сравнить переменную с данными из таблицы / 25 сообщений из 29, страница 1 из 2
09.08.2017, 08:31
    #39502287
Akezhan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
как сравнить данные из таблицы с переменной
...
Рейтинг: 0 / 0
09.08.2017, 08:41
    #39502289
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Akezhanкак сравнить данные из таблицы с переменной
Привет, а как ты их хочешь сравнить? напиши пожалуйста пример или что-нибудь что бы понять как именно ты хочешьих сравнивать )))
...
Рейтинг: 0 / 0
09.08.2017, 08:49
    #39502295
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Akezhan,

Что-то типо того ))) ? :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare 
  peremen integer;
  zn integer;
begin
  peremen:=1;
  select t.id
         into zn
      from ttable t
      where t.id=peremen; --Вот тут сравнение
  DBMS_OUTPUT.PUT_LINE(zn);
end;
...
Рейтинг: 0 / 0
09.08.2017, 08:50
    #39502296
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Akezhan,

Тебе уже ответил Stax в предыдущей твоей теме 20709835 .

Не плоди десяток тем по одному вопросу. И почитай доку . Concepts, SQL reference и PL/SQL reference в первую очередь.
...
Рейтинг: 0 / 0
09.08.2017, 08:51
    #39502297
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Вы бы хоть соседние темы читали, прежде чем советы выдавать - пример использования агрегатной функции уже был.
...
Рейтинг: 0 / 0
09.08.2017, 08:53
    #39502298
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015,

Говнокод, напрашивающийся на NO_DATA_FOUND. Не советуй больше подобного.
...
Рейтинг: 0 / 0
09.08.2017, 08:53
    #39502299
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
envRMagistr2015,

Говнокод, напрашивающийся на NO_DATA_FOUND. Не советуй больше подобного.
Понял, спасибо
...
Рейтинг: 0 / 0
09.08.2017, 08:54
    #39502300
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
в догонку

А также на TOO_MANY_ROWS, TYPE_MISMATCH и прочая, прочая, прочая....
...
Рейтинг: 0 / 0
09.08.2017, 08:57
    #39502302
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
env,

тогда так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare 
  peremen integer;
  zn integer;
begin
  peremen:=1;
  select t.id
         into zn
      from ttable t
      where t.id=peremen; --Вот тут сравнение
  DBMS_OUTPUT.PUT_LINE(zn);
  
  exception when OTHERS then
      DBMS_OUTPUT.PUT_LINE('error');
end;
...
Рейтинг: 0 / 0
09.08.2017, 09:08
    #39502309
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015,

Зачем писать кусок кода, практически гарантированно дающий ошибку при малейшем шаге в сторону?
...
Рейтинг: 0 / 0
09.08.2017, 09:11
    #39502311
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Basil A. Sidorov,

Пошёл период "закрывающих хвосты". Сейчас будет всплеск тем "как получить 2, складывая 1 и 1, без малейших попыток прочитать учебник по арифметике?"
...
Рейтинг: 0 / 0
09.08.2017, 09:12
    #39502314
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
envRMagistr2015,

Зачем писать кусок кода, практически гарантированно дающий ошибку при малейшем шаге в сторону?

(заинтересованно) А какие шаги ты подразумеваешь например?
...
Рейтинг: 0 / 0
09.08.2017, 09:50
    #39502343
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015,

Все перечисленные выше.

Протестируй свой код на сценариях:

- тип данных поля в таблице не совпадает с типом сравниваемой переменной
- в таблице более одного поля с таким значением
- в таблице нет полей с таким значением
- переменная содержит NULL

И задумайся, можно ли по твоему коду понять, что пошло не так.
Я уж молчу о том, что в постановке ТС задача излишне абстрактная по своей сути и предполагает разные реализации для разных целей. От курсора по таблице с явным приведением типов и обработкой возможных исключений до банального select count(*) into from t where decode(t.field, l_variable, 0) = 0, в зависимости от того, что на самом деле надо по постановке задачи.
...
Рейтинг: 0 / 0
09.08.2017, 10:09
    #39502362
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015, env,

Да начнется срач..
...
Рейтинг: 0 / 0
09.08.2017, 10:11
    #39502364
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
saxarock,

А надо? В этой теме он себя вполне прилично ведёт. Даже помочь пытался, как сумел.
Другой вопрос, качество этой помощи...
...
Рейтинг: 0 / 0
09.08.2017, 10:43
    #39502386
saxarock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
env,

нормально написал парень

Код: plsql
1.
2.
exception when OTHERS then
      DBMS_OUTPUT.PUT_LINE('error');

люблю такие штуки, почему упало хз, становится понятно зачем ты в конторе нужен.
...
Рейтинг: 0 / 0
09.08.2017, 12:13
    #39502469
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
saxarock,
Ничего скучнее чем срач не видел.
saxarock
Код: plsql
1.
2.
exception when OTHERS then
      DBMS_OUTPUT.PUT_LINE('error');

люблю такие штуки...
ТС действительно несовсем конкретно поставил задачу, поэтому я и задал вопрос:
RMagistr2015Что-то типо того ))) ? :


env,
порылся в exception, вот что получилось ))) :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare 
  peremen integer:=1+null;
  zn integer:=0;
begin
  select t.client_id
         into zn
      from ttable t
      where t.id=peremen;
  DBMS_OUTPUT.PUT_LINE(zn);
  exception 
    when TOO_MANY_ROWS then
      DBMS_OUTPUT.PUT_LINE('return more than one value'); --select вернул больше одного значения
    when no_data_found then
      DBMS_OUTPUT.PUT_LINE('No such values'); --select ничего не вывел, сюда же попало условие - если переменная содержит NULL
    when INVALID_NUMBER then
      DBMS_OUTPUT.PUT_LINE('INVALID NUMBER'); --переменная не число
end;
...
Рейтинг: 0 / 0
09.08.2017, 12:23
    #39502482
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015saxarock,
Ничего скучнее чем срач не видел.
saxarock
Код: plsql
1.
2.
exception when OTHERS then
      DBMS_OUTPUT.PUT_LINE('error');

люблю такие штуки...
ТС действительно несовсем конкретно поставил задачу, поэтому я и задал вопрос:
RMagistr2015Что-то типо того ))) ? :


env,
порылся в exception, вот что получилось ))) :
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
declare 
  peremen integer:=1+null;
  zn integer:=0;
begin
  select t.client_id
         into zn
      from ttable t
      where t.id=peremen;
  DBMS_OUTPUT.PUT_LINE(zn);
  exception 
    when TOO_MANY_ROWS then
      DBMS_OUTPUT.PUT_LINE('return more than one value'); --select вернул больше одного значения
    when no_data_found then
      DBMS_OUTPUT.PUT_LINE('No such values'); --select ничего не вывел, сюда же попало условие - если переменная содержит NULL
    when INVALID_NUMBER then
      DBMS_OUTPUT.PUT_LINE('INVALID NUMBER'); --переменная не число
end;



Если Вы никак не обрабатываете exception, проще вывести стандартное сообщение
Разве что хочется обругать по русски криворукого пользователя.

Но, в любом случае, все неизвестные exception, нужно выводить во вменяемом виде:

Дока Example 10-11, "Displaying SQLCODE and SQLERRM"
Example 13-6, "Using SQLCODE and SQLERRM"

Код: plsql
1.
2.
3.
4.
5.
...
      WHEN OTHERS THEN
         v_code := SQLCODE;
         v_errm := SUBSTR(SQLERRM, 1 , 64);
         DBMS_OUTPUT.PUT_LINE('Error code ' || v_code || ': ' || v_errm);
...
Рейтинг: 0 / 0
09.08.2017, 13:01
    #39502519
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Vadim LejninНо, в любом случае, все неизвестные exception, нужно выводить во вменяемом виде:
...
v_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1 , 64);
...или,
Код: plsql
1.
... sys.dbms_utility.format_error_stack||sys.dbms_utility.format_error_backtrace ...
...
Рейтинг: 0 / 0
09.08.2017, 13:11
    #39502528
Азагаш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
проблема, как я понимаю, не в недостаточной обработке ошибок, а в их излишней генерации. вообще, есть вопрос по коду, зачем выбирать значение t.id, да еще и складывать это значение в переменную, если мы и так знаем, что это peremen (ну или все упадет)?
...
Рейтинг: 0 / 0
09.08.2017, 13:20
    #39502537
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Вот так вот, благодаря "добродетели", вопрос по незнанию SQL наибанальнейшего select-where, перерос в обсуждение как лучше скрыть ошибку PL/SQL. Сразу в null или сначала записать в dbms_output.
...
Рейтинг: 0 / 0
09.08.2017, 13:22
    #39502539
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Азагашпроблема, как я понимаю, не в недостаточной обработке ошибок, а в их излишней генерации. вообще, есть вопрос по коду, зачем выбирать значение t.id, да еще и складывать это значение в переменную, если мы и так знаем, что это peremen (ну или все упадет)?

Это для примера - Что-то типо того )))
А так возможны любые варианты появления там значения, ТС не уточнил )))
Это я так понял абстрактная задача, где не рассматриваются способы появления значения в переменной, а рассматривается сравнение со значениями в таблице в колонке...
(заинтересованно) А что вы имеете ввиду говоря об ошибках под - а в их излишней генерации...? )))
...
Рейтинг: 0 / 0
09.08.2017, 13:23
    #39502541
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
RMagistr2015,

А что вы имеете ввиду говоря об ошибках под фразой - а в их излишней генерации...? )))
...
Рейтинг: 0 / 0
09.08.2017, 13:24
    #39502542
RMagistr2015
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
Азагаш ))))

RMagistr2015RMagistr2015,

А что вы имеете ввиду говоря об ошибках под фразой - а в их излишней генерации...? )))

Этот вопрос тебе )))
...
Рейтинг: 0 / 0
09.08.2017, 13:28
    #39502546
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
можно ли сравнить переменную с данными из таблицы
оракловая ветка так изголодалась по интересным темам, что люди готовы браться за любую задачу, даже к которой нет ни требований, ни нормального описания.

И что самое грустно, советы дает Rясельник2099.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / можно ли сравнить переменную с данными из таблицы / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]