الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكلة Cursor مع Sequence Number

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته ........

انا عامل packge ومنها مستدعى إجراء procedure
حصيلة الموضوع أنو فى نهاية package..

عندى جمله

open MyCursor for select MySequence.CurrVal from dual;

هذه الجملة أعطتنى خطأ .... مع العلم انى استخدم Visual basci.Net
هذا الخطا هو :

MySequence.CurrVal is not define is this session

لا اعلم ما الخطأ.....

قمت باتبدال MySequence.CurrVal

ووضعت .NextVal

كعمل اختبار لل Sequence

عملت بطريقة صحيحة

لاكن المشكلة واقعة على CurrVal

أفيدونى أفادكم الله ...

هذا هو المتال ...

بتاريخ:
  • كاتب الموضوع

-----------------------------------إسقاط الأرقام الديناميكية-------------------------------

Drop Sequence Seq_Product;
Drop Sequence Seq_Category;
Drop Sequence Seq_Measurement;
Drop Sequence Seq_Company;


-----------------------------------تكوين الأرقام الديناميكية-------------------------------
Create Sequence Seq_Product
Start with 1
increment by 1
NoMaxValue;

Create Sequence Seq_Category
Start with 1
increment by 1
NoMaxValue;

Create Sequence Seq_Measurement
Start with 1
increment by 1
NoMaxValue;

Create Sequence Seq_Company
Start with 1
increment by 1
NoMaxValue;

-- ---------------------------------إسقاط الجداول-------------------------------

Drop table Product;
Drop table Category;
Drop table Measurement;
Drop table Company;

-----------------------------------تكوين الجداول-------------------------------

--جدول الشركات المصنعة

Create table Company
(
ID number(10),
CodeNumber number(10) null,
Description nvarchar2(50) Not Null,
CreationDate Date Default SysDate,
EndServiceDate Date Default Null,
CONSTRAINT Company_ID_pk PRIMARY KEY(ID)
) ;

--جدول الوحدات

Create table Measurement
(
ID number(10),
CodeNumber number(10) null,
Description nvarchar2(50) Not Null,
CreationDate Date Default SysDate,
EndServiceDate Date Default Null,
CONSTRAINT Measurement_ID_pk PRIMARY KEY(ID)
) ;

--جدول المجموعات

Create table Category
(
ID number(10),
CodeNumber number(10) null,
Description nvarchar2(50) Not Null,
ParentId number(10) references Category(ID),
CreationDate Date Default SysDate,
EndServiceDate Date Default Null,
CONSTRAINT Category_ID_pk PRIMARY KEY(ID)
);

--جدول الأصناف

Create table Product
(
ID number(10),
CategoryId number(10) Not null,
CodeNumber number(10) null,
Description nvarchar2(50) Not Null,
MeasurementId number(10) Not null,
CompanyId number(10) Not null,
BarCode nvarchar2(50) Not Null,
SellPrice number(5,3),
BuyPrice number(5,3),
MinRequest number(4),
Balance number(4),
CreationDate Date Default SysDate,
EndServiceDate Date Default Null,
CONSTRAINT Product_ID_pk PRIMARY KEY(ID),
CONSTRAINT Product_CategoryId_fk FOREIGN KEY (CategoryId)
REFERENCES Category(ID),
CONSTRAINT Product_MeasurementId_fk FOREIGN KEY (MeasurementId)
REFERENCES Measurement(ID),
CONSTRAINT Product_CompanyId_fk FOREIGN KEY (CompanyId)
REFERENCES Company(ID)
) ;

-----------------------------------الإضافات التلقائية-------------------------------

--جدول المجموعات

insert into Category(ID,CodeNumber,Description,ParentId)
values(Seq_Category.NextVal,1,'Product Groups',1);

insert into Category(ID,CodeNumber,Description,ParentId,EndServiceDate)
values(Seq_Category.NextVal,2,'مواد غذائية',
1,'20/06/06');

insert into Category(ID,CodeNumber,Description,ParentId)
values(Seq_Category.NextVal,3,'معلبات',
1);

insert into Category(ID,CodeNumber,Description,ParentId)
values(Seq_Category.NextVal,4,'فواكه',
1);

insert into Category(ID,CodeNumber,Description,ParentId)
values(Seq_Category.NextVal,5,'حلويات',
4);

-----------------------------------الإجراءات------------------------------

--بــــــاكج الأصنــــــــــــاف

CREATE OR REPLACE PACKAGE ProductPkg AS
TYPE Product_cursor IS REF CURSOR ;
Procedure GetProduct (io_cursor1 IN OUT Product_cursor);
END ProductPkg;
/

CREATE OR REPLACE PACKAGE BODY ProductPkg AS
Procedure GetProduct (io_cursor1 IN OUT Product_cursor)
IS
P_cursor Product_cursor;
BEGIN
OPEN P_cursor FOR
SELECT * from Product;
io_cursor1 := P_cursor;
END GetProduct;
END ProductPkg;
/


--بــــــاكج مجموعات الأصناف

CREATE OR REPLACE PACKAGE CategoryPkg AS
TYPE Category_cursor IS REF CURSOR ;

Procedure GetCategory
(
ID IN Number Default Null,
CodeNumber IN Number Default Null,
Description IN nvarchar2 Default Null,
ParentId IN Number Default Null,
WholeCategory IN Number Default Null,
io_cursor2 IN OUT Category_cursor
);

Procedure EditCategory
(
ID IN Number Default Null,
CodeNumber IN Number Default Null,
Description IN nvarchar2 Default Null,
ParentId IN Number Default Null,
WholeCategory IN Number Default Null,
Del IN Number Default Null,
io_cursor2 IN OUT Category_cursor
);

END CategoryPkg;
/

CREATE OR REPLACE PACKAGE BODY CategoryPkg AS

Procedure GetCategory
(
ID IN Number Default Null,
CodeNumber IN Number Default Null,
Description IN nvarchar2 Default Null,
ParentId IN Number Default Null,
WholeCategory IN Number Default Null,
io_cursor2 IN OUT Category_cursor
)

IS
C_cursor Category_cursor;
SqlString VARCHAR2(2000);
BEGIN

if GetCategory.WholeCategory is Not Null then
SqlString := 'SELECT ID,CodeNumber,Description,ParentId from Category where 1=1';
else
SqlString := 'SELECT ID,CodeNumber,Description,ParentId from Category where EndServiceDate is Null';
end if;

IF GetCategory.ID is not Null then
SqlString := SqlString || ' and Category.ID = ' || GetCategory.ID ;
end if;

IF GetCategory.CodeNumber is not Null then
SqlString := SqlString || ' and Category.CodeNumber = ' || GetCategory.CodeNumber ;
end if;

IF GetCategory.Description is not Null then
SqlString := SqlString || ' and Description= ' || '''' || GetCategory.Description || '''' ;
end if;

IF GetCategory.ParentId is not Null then
SqlString := SqlString || ' and Category.ParentId = ' || ' GetCategory.ParentId ' ;
end if;

OPEN C_cursor FOR SqlString;
io_cursor2 := C_cursor;

END GetCategory;

Procedure EditCategory
(
ID IN Number Default Null,
CodeNumber IN Number Default Null,
Description IN nvarchar2 Default Null,
ParentId IN Number Default Null,
WholeCategory IN Number Default Null,
Del IN Number Default Null,
io_cursor2 IN OUT Category_cursor
)

is

C_cursor Category_cursor;
SqlString VARCHAR2(2000);
a long;
Begin

--المشكلة تكمن هنا يا أصدقاء

OPEN C_cursor FOR select Seq_Category.Currval,Description from Category Where Category.ID=1;

io_cursor2 := C_cursor;
End EditCategory;

END CategoryPkg;
/

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.