View Full Version : بدست آوردن چندین رکورد از روی 1 رکورد
M * M * A
جمعه 20 آبان 1390, 23:24 عصر
با ساتم خدمت اساتید گرامی
1 مشکل برای من بوجود اومده اگه ممکنه راهنمایی بفرمایید .
من 1 رکرود دارم که بیش از 30000 خط اطلاعات توی یکی از فیلداش هست.
حاالا من چطوری میتونم دستوری لایکی بنویسم که هر کلمه ای که پیدار کرد رو + 20 حرف و بعدشو توی 1 رکرد نشون بده /؟(یعنی هر کلمه ای گه پیدا کرد رو بره توی یک رکورد مجزا بنویسه+20 حرف قبل و بعدش)
baktash.n81@gmail.com
شنبه 21 آبان 1390, 11:36 صبح
DECLARE @STRING NVARCHAR(MAX),@CHARINDEX INT,@SUBSTRING NVARCHAR(50),@WORDLENT INT,@SEARCHFOR NVARCHAR(50)
SET @STRING='BARAYE TEST CHARINDEX FUNCTION VA SUBSTRING TEST TEST' -- STRING TEST
SET @CHARINDEX = 1
SET @SEARCHFOR = N'TEST' -- KALAMEYE MORED JOSTEJO
SET @WORDLENT = LEN(@SEARCHFOR)-- ANDAZEYE KALAMEYE MORED JOSTEJO
WHILE @CHARINDEX <> 0
BEGIN
SELECT @CHARINDEX=CHARINDEX(@SEARCHFOR,@STRING,@CHARINDEX +1)
SELECT @SUBSTRING=SUBSTRING(@STRING,@CHARINDEX-20,@WORDLENT+40)
IF @CHARINDEX <> 0
-- INSERT INTO TABLE1 (F1) VALUES (@SUBSTRING)
PRINT @SUBSTRING
END
baktash.n81@gmail.com
شنبه 21 آبان 1390, 11:38 صبح
سلام
تو قسمت INSERT که کامنت شده دستور مربوط به INSERT رو بنویس
M * M * A
شنبه 21 آبان 1390, 13:34 عصر
مرسی از راهنماییت
ولی 1 مشکل دیگه
فیلد من از نوع ntext هستوخطا میده.حالا چی کار کنم ؟
The text, ntext, and image data types are invalid for local variables.
baktash.n81@gmail.com
شنبه 21 آبان 1390, 14:52 عصر
اول مقدار فیلد رو بریز توی متغیر nvarchar(max) بعد تو کد از اون متغیر استفاده کن ...
امیدوارم کمک کرده باشه
M * M * A
شنبه 21 آبان 1390, 14:57 عصر
از nvarchar(Max) خطا میگیره
Line 5: Incorrect syntax near 'Max'.
baktash.n81@gmail.com
شنبه 21 آبان 1390, 20:57 عصر
نسخه sql ات چنده ... اگه فقط می خوای این کارو یک بار انجام بدی sql 2008 نصب کن یک Backup روش restore کن ... بعد خروجی رو بریز توی جدول و Exportesh کن ... یا ... یک قطعه کد بنویس با C# یا دلفی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.