View Full Version : این پیغام خطا برای چیه ؟
ahmad1358
چهارشنبه 22 اسفند 1386, 11:18 صبح
با سلام
من یه دستور ساده میدم (select name from usertrace where operator = 982)
ولی پیغام میده که Invalid Number
فیلد operator از نوع عددی هستش ولی پیغام خطا میده
aidin300
چهارشنبه 22 اسفند 1386, 17:28 عصر
از نوع عددی هست یا قرار هست مقادیر عددی داخل این فیلد ذخیره بشه؟ دستور زیر رو امتحان کن
select name from usertrace where operator = '982'
اگه جوابداد یعنی نوع فیلد رشته هست و مقادیری alphanumeric مثل 12A تو اون ذخیره شده و اگه جواب نداد خروجی اجرای دستور زیر تو sqlplus رو اینجا قرار بده
DESC usertrace
ahmad1358
پنج شنبه 23 اسفند 1386, 08:46 صبح
من به جای عملگر = از Like استفاده کردم و درست شد دلیلش چی میتونه باشه
aidin300
جمعه 24 اسفند 1386, 20:47 عصر
تو پست قبل گفتم نتیجه دستور زیر رو بذار اینجا اگه نمی شه اسکریپت ایجاد جدول رو بذار ولی دلیل مشکلت همونی هست که تو پست قبل گفتم
DESC usertrace;
ahmad1358
یک شنبه 26 اسفند 1386, 09:00 صبح
SQL> DESC USERTRACE
Name Null? Type
------------------------------- -------- ----
COUNTER NOT NULL NUMBER(20)
OPERATOR VARCHAR2(20)
OPERATION NUMBER(4)
CODE VARCHAR2(20)
TERM NUMBER(3)
OPDATE NOT NULL DATE
STATUS VARCHAR2(15)
COMMENTOP VARCHAR2(60)
PARAMNAME1 VARCHAR2(50)
PARAMVALUE1 VARCHAR2(50)
PARAMNAME2 VARCHAR2(50)
PARAMVALUE2 VARCHAR2(50)
PARAMNAME3 VARCHAR2(50)
PARAMVALUE3 VARCHAR2(50)
aidin300
یک شنبه 26 اسفند 1386, 22:06 عصر
فیلد OPERATOR به صورت VARCHAR2(20) تعریف شده و میتونه مقادیر alphanumeric رو ذخیره کنه و چون داخل این فیلد مقدار غیر عددی ذخیره شده و اوراکل نمی تونه این مقدار رو برای مقایسه با 982 به عدد تبدیل کنه باعث بروز خطا میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.