Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-44
Guest
Всем привет.

Есть две одинаковые БД на одном сервере, настроен линк для связи этих БД. Нужно перенести часть записей из одной таблицы в другую, но есть столбцы с типом text и image. Без учета этих столбцов данные перенести могу, а с ними не получается. В столбце с типом text, в каждой записи таблицы хранится структура xml-файла. Размер некоторых файлов достигает величины более 100 Кб. В столбце с типом image, в каждой записи таблицы хранится штрих-код.
Функция READTEXT обрезает данные до 10376 байт, т.е. не получается их даже полностью выбрать из столбца!
Подскажите, как быть?

MS SQL Server 2000
5 апр 12, 07:12    [12368362]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Под одинаковыми БД имеется ввиду одинаковая структура.
5 апр 12, 07:18    [12368367]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
aleks2
Guest
insert БАЗА2..таблица(полеImage)
select полеImage FROM БАЗА1..таблица


ЗЫ. Фсе гениальное - просто.
5 апр 12, 07:21    [12368372]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
aleks2,

Как я узнаю, что данные не были обрезаны?
5 апр 12, 07:34    [12368381]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
aleks2
insert БАЗА2..таблица(полеImage)
select полеImage FROM БАЗА1..таблица


ЗЫ. Фсе гениальное - просто.


Данные из этих столбцов не вставляются таким способом. Столбцы содержат NULL.
5 апр 12, 08:04    [12368408]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Данные из этих столбцов не вставляются таким способом. Столбцы содержат NULL.

а?

Posted via ActualForum NNTP Server 1.5

5 апр 12, 08:10    [12368413]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
daw
> Данные из этих столбцов не вставляются таким способом. Столбцы содержат NULL.

а?



Столбцы с типом данных text и image содержат NULL, все остальные столбцы вставляются нормально. Надеюсь так понятнее.
5 апр 12, 08:16    [12368421]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Tigrist
Member

Откуда: Россия-Таиланд-Корея
Сообщений: 479
Владимир-4
daw
> Данные из этих столбцов не вставляются таким способом. Столбцы содержат NULL.

а?



Столбцы с типом данных text и image содержат NULL, все остальные столбцы вставляются нормально. Надеюсь так понятнее.

значит вы врете, что структура источника и результата одинаковая.
разрешите Null там куда переносите.
5 апр 12, 08:27    [12368432]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Добрый фей
Member

Откуда: Москва
Сообщений: 67
После вставки столбцы text и image пустые, я правильно понял?
5 апр 12, 08:27    [12368433]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Столбцы с типом данных text и image содержат NULL, все остальные
> столбцы вставляются нормально. Надеюсь так понятнее.

хотелось бы увидеть скрипты на создание таблиц, скрипт вставки
и результат запроса select @@version

Posted via ActualForum NNTP Server 1.5

5 апр 12, 08:40    [12368454]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Добрый фей
После вставки столбцы text и image пустые, я правильно понял?

Почти, они содержат NULL.
Поясню еще раз.
В таблице источнике столбцы с типом данных text и image в выбираемых строка содержат данные, а при вставке в целевую таблицу с помощью insert ... select ... они содержат значение NULL, хранение NULL в этих столбцах разрешено.
5 апр 12, 09:11    [12368511]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

у меня все прекрасно вставляется:
use tempdb
go
create table t (txt text)
declare @v1 varchar(8000), @v2 varchar(8000)
set @v1 = 'insert into t values (''' + replicate('a', 7500)
set @v2 = replicate('a', 7500) + ''')'
exec(@v1 + @v2)
select *, datalength(txt) from t
go
use Northwind
go
create table t (txt text)
go
insert into t (txt)
select txt from tempdb..t
go
select *, datalength(txt) from t
go
drop table t
go
use tempdb
go
drop table t
go
select @@version

Microsoft SQL Server 2000 - 8.00.2039 (Intel X86) May 3 2005 23:18:38 Copyright (c) 1988-2003 Microsoft
Corporation Developer Edition on Windows NT 5.2 (Build 3790: Service Pack 2)

Posted via ActualForum NNTP Server 1.5

5 апр 12, 09:21    [12368549]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
daw,

Чуть позже попробую, отпишусь.
5 апр 12, 09:31    [12368593]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
daw,
Демонстрационный скрипт работает, а вот в мое случае с другими табличками не получается!
5 апр 12, 10:20    [12368801]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> Демонстрационный скрипт работает, а вот в мое случае с другими табличками не получается!

скрипт таблицы можно сделать в enterprise manager-е - правой кнопкой
по таблице - все задачи - Generate SQL script...
на закладке Options поставьте галку script triggers

и ваш запрос на вставку все еще увидеть хочется.

Posted via ActualForum NNTP Server 1.5

5 апр 12, 10:31    [12368865]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
daw
> Демонстрационный скрипт работает, а вот в мое случае с другими табличками не получается!

скрипт таблицы можно сделать в enterprise manager-е - правой кнопкой
по таблице - все задачи - Generate SQL script...
на закладке Options поставьте галку script triggers

и ваш запрос на вставку все еще увидеть хочется.


Каюсь, это мой косяк, только больно не бейте. :)
Дело в том, что первый вариант вставки данных был реализован через курсор, а так как переменные типа text и image создать нельзя, то столбцы с этими типами данных были пропущены, а когда писал insert ... select ... скопировал список столбцов из insert, который использовал в курсоре. А курсор для вставки использовал по инерции, т.к. до этого написал курсор на обновление данных, забыв про чудесный insert ... select ...!
5 апр 12, 11:00    [12369092]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Есть еще одна задачка. Как теперь вытащить из некоторых полей с типом text, то самый текст? QA обрезает вывод содержимого этих полей до 8192 байт, а мне нужен весь текст, я из него должен вытащить некоторую информацию для вставки в другую таблицу.
Функции для работы со строками по этим полям как я понял не работают.
5 апр 12, 11:09    [12369192]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Владимир-4
из него должен вытащить некоторую информацию для вставки в другую таблицу.

ну так опять insert ... select
5 апр 12, 11:12    [12369211]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Glory,

Нет, мне нужно осуществить поиск по тексту из поля, и скопировать только определенный фрагмент текста.
5 апр 12, 11:20    [12369267]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Glory
Member

Откуда:
Сообщений: 104751
PATINDEX замечательно ищет по типу text
SUBSTRING замечательно извлекает из text нужный фрагмент, не более 8000 байт
5 апр 12, 11:22    [12369289]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Glory,

Пробовал, не получилось!
5 апр 12, 11:23    [12369298]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Владимир-4
Glory,

Пробовал, не получилось!

Ага. Классика жанра:

К сообщению приложен файл. Размер - 7Kb
5 апр 12, 11:26    [12369313]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Glory
Member

Откуда:
Сообщений: 104751
Владимир-4
Пробовал, не получилось!

Опять забыли включить столбец в текст запроса что ли ?
5 апр 12, 11:28    [12369332]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Гавриленко Сергей Алексеевич,

Серьёзно, patindex возвращает 0, когда я точно знаю, что искомый фрагмент текста точно есть в поле!
5 апр 12, 11:29    [12369341]     Ответить | Цитировать Сообщить модератору
 Re: Перенос данных из BLOB полей между таблицами разных БД (MS SQL Server 2000)  [new]
Владимир-4
Member

Откуда:
Сообщений: 40
Glory
Владимир-4
Пробовал, не получилось!

Опять забыли включить столбец в текст запроса что ли ?

Как я мог забыть, если столбец всего один! :)
5 апр 12, 11:30    [12369350]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить