powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Очень медленно работает UPDATE
25 сообщений из 97, страница 3 из 4
Очень медленно работает UPDATE
    #38603703
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему то не обновляются записи.
создал процедуру:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
begin
  merge into "Coupons"
  using (select "code" FROM "couponsFile") couponsFile
  on Trim('couponsFile.code') = Trim('Coupons.Code')
  when matched then
      update set
      "Active" = 0;
end



вроде все верно, синт. ошибок нет. процедура отрабатывает но ничего не изменяет. совпадающие номера в таблицах имеются.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603706
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLпроцедура отрабатывает но ничего не изменяет. совпадающие номера в таблицах имеются.Вы сравниваете не содержимое полей, а строковые литералы. Которые не равны друг другу :-).
Поменяйте апострофы на кавычки. А еще лучше - забудьте про такую практику (создание базы с case-sensitive полями), читать это невозможно.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603708
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид,

"couponsFile.code" = "Coupons.Code", имеете ввиду так ?
но так синт. ошибки.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603713
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLТаблоид,

"couponsFile.code" = "Coupons.Code", имеете ввиду так ?
но так синт. ошибки.Держите текст этих ошибок в тайне и никогда никому не показывайте.
Не уверен, что прокатит, но попробуйте еще вот так: couponsFile."code" = "Coupons"."Code"
ЗЫ. Весёлый гемор там у вас, с кавычками-то...
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603723
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опять беда :(

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
couponsFile.code.
At line 6, column 6.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603729
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
begin
merge into "Coupons"
using "couponsFile"
on Trim("couponsFile"."code") = Trim("Coupons"."Code")
when matched then
update set
"Active" = 0
;
end
вот так отработало, без синтакс. ошибок. но update не отработал.
может быть из за этого, что тип поля couponsFile.code (char), а Coupons.Code (varchar)

http://s019.radikal.ru/i615/1404/f4/edfe0569c524.jpg
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603735
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

couponsFile - это GTT ON COMMIT DELETE ROWS? Если да, то обязательное условие чтобы заливка INSERT и ваша процедура работали в одной транзакции
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603736
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLupdate не отработал.
может быть из за этого, что тип поля couponsFile.code (char), а Coupons.Code (varchar)Вы можете создать базу "без кавычек" ? Зачем самому себе грабли подкладывать ?
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603743
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторcouponsFile - это GTT ON COMMIT DELETE ROWS? Если да, то обязательное условие чтобы заливка INSERT и ваша процедура работали в одной транзакции

нет, это EXTERNAL.

авторВы можете создать базу "без кавычек" ? Зачем самому себе грабли подкладывать ?

не много поясню. это решение не мое :(
я больше специализирован на решениях на платформе 1с. у нас есть ПО работает с этой базой, мне нужно "сливать" из 1с в FB в эту базу данные, через текстовый файл и так как я тут один, то на меня указали звезды. :( из 1с я на прямых запросах быстро формирую этот файл, а вот залить с той же скоростью в FB уже 3й день не получается.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603744
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLопять беда :(

Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
couponsFile.code.
At line 6, column 6.и что у вас там за бардак?
то есть кавычки, то нет, алиас совпадает с именем таблицы, регистрозависимость (как уже сказали) мешает читать.
ну и код создания select "code" FROM "couponsFile" неплохо увидеть.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603749
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLнет, это EXTERNAL.тогда для начала что возвращает из "couponsFile"?
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603751
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster,
авторну и код создания select "code" FROM "couponsFile" неплохо увидеть.
http://s43.radikal.ru/i101/1404/8b/1b8286fce893.jpg
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603754
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603762
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

приведи DDL таблицы couponsFile, а не картинку из IBE.
И ещё в IBE в гриде есть такой пункт по правой клавише мыши как "копировать записи в буфер обмена". Вот так это выгдлядит при вставке

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CODE_AGE	NAME
-1	Неизвестно
1	2
2	2+
3	3
4	3+
5	4
6	4+
7	5
8	5+
9	6+
23	Ст. возраст

Это чтобы скриншоты не выкладывать.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603774
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DDL couponsFile:
SET SQL DIALECT 3;

CREATE TABLE "couponsFile" EXTERNAL 'C:\FILE.TXT' (
"code" CHAR(13),
NEWLINE CHAR(1)
);
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603775
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

ладно.
1C это... круто, поэтому надо помочь.
что возвратит запрос
Код: sql
1.
2.
3.
4.
select count(*)
from "Coupons"
where "Coupons"."Code" in
 (select "couponsFile"."code" FROM "couponsFile")
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603779
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster,

COUNT
0
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603780
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLNEWLINE CHAR(1)это что? признак какой-то?
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603786
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster]это что? признак какой-то? нет, это для переноса строки в текстовом файле.
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603787
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLroadster,

COUNT
0так получается, что нет у тебя записей в "Coupons" где поле "code" отвечало бы условиям.
ладно, немного преобразуем запрос
Код: sql
1.
2.
3.
4.
select count(*)
from "Coupons"
where UPPER(TRIM("Coupons"."Code")) in
 (select UPPER(TRIM("couponsFile"."code")) FROM "couponsFile")


хотя скорее всего трима хватит
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603797
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и с просто TRIM'om и с UPPER(TRIM())

COUNT
0
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603804
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQLи с просто TRIM'om и с UPPER(TRIM())

COUNT
0нет записей с таким условием, обновлять нечего.
но для верности
Код: sql
1.
2.
3.
4.
5.
6.
select count(*)
from "Coupons"
where TRIM("Coupons"."Code") LIKE '%123456789012%'
     OR TRIM("Coupons"."Code") LIKE '%012345678912%'
     OR TRIM("Coupons"."Code") LIKE '%234567890123%'
     OR TRIM("Coupons"."Code") LIKE '%345678901234%'



PS кокой фигнёй только не займёшься от скуки
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603811
JuniorSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
:) не знаю что это было, но

COUNT
4
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603823
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL:) не знаю что это было, но

COUNT
4о хоспади...
в 1С в прямых запросах LIKE не используется что ли?
просто в "Coupons"."Code" нет точного соответствия а есть строки включающие эти циферки, при этом либо до либо после есть иные символы, отличные от пробелов (пробелы тримом отрезаются, если что)
...
Рейтинг: 0 / 0
Очень медленно работает UPDATE
    #38603827
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JuniorSQL,

ладно давай так
Код: sql
1.
2.
3.
4.
5.
6.
select "Coupons"."Code"
from "Coupons"
where TRIM("Coupons"."Code") LIKE '%123456789012%'
     OR TRIM("Coupons"."Code") LIKE '%012345678912%'
     OR TRIM("Coupons"."Code") LIKE '%234567890123%'
     OR TRIM("Coupons"."Code") LIKE '%345678901234%'



ЗЫ да штош как скушно0то...
...
Рейтинг: 0 / 0
25 сообщений из 97, страница 3 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Очень медленно работает UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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