نمایش نتایج 1 تا 8 از 8

نام تاپیک: تعریف متغیری در پروسیجر که شبیه دیتا ریدر باشه

  1. #1

    Question تعریف متغیری در پروسیجر که شبیه دیتا ریدر باشه

    چه جوری در یک پروسیجر یک متغیری تعریف کنم که شبیه یک دیتا ریدر عمل کنه؟ که بتونم خروجی یک سلکت رو در اون بذارم و به تعداد خروجی ها در جدول insert کنم
    اگه می شه یه تیکه کد معرفی کنید

  2. #2
    اگر منظورتون اینه که خروجی دستور Select وارد جدول دیگه ای بشه، میتونین از خود دستور Insert استفاده کنین:
    INSERT MyTable SELECT * FROM MySecondTable

  3. #3
    آره دقیقا اما نه همه فیلد ها رو به همون شکل بلکه با کمی تغییر که در کل فقط یک جدول دیگره
    برم امتهان کنم خیلی خیلی ممنونم

  4. #4
    این "کمی تغییر" که میفرمایید چجور تغییریه؟ میشه در یک Query حلش کرد؟

  5. #5
    کاربر دائمی آواتار sarvestan
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    سروستان
    پست
    162
    بازهم توصیه ام استفاده از CURSOR ها است!
    با یک CURSOR میتوان به یک مجموعه از رکورد ها اشاره کرد!
    و در عین حال به هر رکورد در این مجموعه دسترسی داشت! این دسترسی می تواند بصورت فقط خواندنی باشد و یا دسترسی خواندن و نوشتن( اولی سریعتره)!
    جستجو در سایت و کمی GOOGLING مشکل شما را در این رابطه حل میفرماید

  6. #6
    آقا جواب نگرفتم
    من چطور می تونم همچین دستوری رو برای update بنویسم

    insert INTO ShiftItemDef SELECT @TypeShiftId as TypeShiftId, DBDATE,... FROM ShiftItemDef
    WHERE (TypeShiftId = @IdxTypeShiftId) AND (DBDATE BETWEEN @SDate AND @EDate)

    این دستور الان رکود های مورد نظر رو به جدول اضافه می کنه درحالی که رکورد های برای این کد وجود دارد که باید این رکود ها درون اونها update بشن
    در رابطه با cursor هم موافقم اما نتونستم چیز زیادی از اون در بیارم تو سایت که فقط پیشنهاد شده بود از این روش استفاده کنید اما این مثال رو تو گوگل پیدا کردم که زیاد ازش سر در نیاوردم
    http://www.adp-gmbh.ch/ora/plsql/cur...or_update.html

    set feedback off

    create table f (a number, b varchar2(10));
    insert into f values (5,'five');
    insert into f values (6,'six');
    insert into f values (7,'seven');
    insert into f values (8,'eight');
    insert into f values (9,'nine');

    commit;

    create or replace procedure wco as
    cursor c_f is
    select a,b from f where length(b) = 5 for update;
    v_a f.a%type;
    v_b f.b%type;
    begin
    open c_f;
    loop
    fetch c_f into v_a, v_b;
    exit when c_f%notfound;
    update f set a=v_a*v_a where current of c_f;
    end loop;

    close c_f;
    end;
    /
    exec wco;
    select * from f;
    drop table f;
    drop procedure wco;

  7. #7
    کاربر دائمی آواتار sarvestan
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    سروستان
    پست
    162
    فردا مقاله ای درباره Cursor ها خواهم گذاشت! ظاهرن مشکل خیلی ها شده!

  8. #8
    ممنون آدرس اونو به من هم بدین

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •