عرض سلام و وقت بخیر خدمت کاربران عزیز سایت محترم پی وی لرن و تمام علاقه مندانی که دوره کامل آموزش PL/SQL را دنبال می کنند. در این جلسه آموزشی به انواع داده PL / SQL می پردازیم، و در مورد انواع داده ها در PL / SQL صحبت خواهیم کرد. متغیرهای PL / SQL، ثابت ها و پارامتر ها باید یک نوع داده معتبر داشته باشند که فرمت ذخیره سازی، محدودیت ها و دامنه معتبر از مقادیر را مشخص می کند. ما بر روی انواع داده SCALAR و LOB در این فصل تمرکز خواهیم کرد. دو نوع داده دیگر در بخش های دیگر پوشش داده می شود.
S.No | رده و شرح |
---|---|
۱ | Scalar مقادیر واحد بدون اجزای داخلی مانند NUMBER، DATE یا BOOLEAN. |
۲ | Large Object (LOB) اشاره گرها به اشیای بزرگ که به طور جداگانه از سایر انواع داده ها ذخیره می شوند، مانند متن، تصاویر گرافیکی، کلیپ های ویدئویی و شکل موج صوتی. |
۳ | Composite آیتم های داده ای که دارای اجزای داخلی هستند که می توانند به صورت جداگانه به آنها دسترسی پیدا کنند. به عنوان مثال، مجموعه ها و پرونده ها.
|
۴ | Reference اشاره به سایر آیتم های داده |
انواع داده PL / SQL و زیر شاخه های PL / SQL مقیاس های زیر، تحت دسته بندی های زیر قرار می گیرند.
S.No | نوع تاریخ و توضیحات |
---|---|
۱ | Numeric مقادیر عددی که عملیات ریاضی انجام می شود.
|
۲ | Character مقادیر الفبایی که یک کاراکتر یا رشته شخصیت را نشان می دهد.
|
۳ | Boolean مقادیر منطقی که عملیات منطقی انجام می شود.
|
۴ | Datetime تاریخ و زمان |
PL / SQL نوعی از انواع داده را فراهم می کند. به عنوان مثال، نوع داده NUMBER دارای یک زیرمجموعه به نام INTEGER است. شما می توانید در انواع داده PL / SQL زیرمجموعه های برنامه PL / SQL خود را برای ایجاد نوع داده ها با انواع داده ها در برنامه های دیگر با استفاده از کد PL / SQL در برنامه دیگری مانند برنامه جاوا سازگار کنید.
جدول زیر از PL / SQL نوع داده های عددی پیش تعریف شده و زیر نوع آنها را لیست می کند.
S.No | نوع داده و توضیحات |
---|---|
۱ | PLS_INTEGER عدد صحیح امضا شده در محدوده -۲،۱۴۷،۴۸۳،۶۴۸ از طریق ۲،۱۴۷،۴۸۳،۶۴۷، در ۳۲ بیتی نشان داده شده است |
۲ | BINARY_INTEGER عدد صحیح امضا شده در محدوده -۲،۱۴۷،۴۸۳،۶۴۸ از طریق ۲،۱۴۷،۴۸۳،۶۴۷، در ۳۲ بیتی نشان داده شده است |
۳ | BINARY_FLOAT فرمت اعشاری IEEE 754 با دقت کامل |
۴ | BINARY_DOUBLE فرمت اعشاری با دوبرابر IEEE 754-format |
۵ | NUMBER(prec, scale) شماره نقطه ثابت یا نقطه اعشاری با مقدار مطلق در محدوده ۱E-130 تا (اما نه شامل) ۱٫۰E126. NUMBER متغیر نیز می تواند ۰ باشد. |
۶ | DEC(prec, scale) نوع خاص نقطه ثابت ANSI با حداکثر دقت ۳۸ رقمی دهدهی |
۷ | DECIMAL(prec, scale) نوع خاص ثابت IBM با حداکثر دقت ۳۸ رقم اعشاری |
۸ | NUMERIC(pre, secale) نوع اعشاری با حداکثر دقت ۳۸ رقمی دهدهی |
۹ | DOUBLE PRECISION ANSI نوع اعشاری نوع خاص با حداکثر دقت ۱۲۶ رقم دودویی (تقریبا ۳۸ رقم اعشار) |
۱۰ | FLOAT ANSI و نوع خاص اعشاری نقطه ی IBM با حداکثر دقت ۱۲۶ رقم دودویی (تقریبا ۳۸ رقم اعشار) |
۱۱ | INT نوع عدد صحیح خاص ANSI با حداکثر دقت ۳۸ رقم دهدهی |
۱۲ | INTEGER نوع عدد صحیح خاص ANSI و IBM با حداکثر دقت ۳۸ رقم دهدهی |
۱۳ | SMALLINT نوع عدد صحیح خاص ANSI و IBM با حداکثر دقت ۳۸ رقم دهدهی |
۱۴ | REAL نوع اعشاری با حداکثر دقت ۶۳ رقم باینری (تقریبا ۱۸ رقم اعشار) |
در زیر یک اعلامیه معتبر است.
1 2 3 4 5 6 7 8 | DECLARE num1 INTEGER; num2 REAL; num3 DOUBLE PRECISION; BEGIN null; END; / |
هنگامی که کد بالا کامل شده و اجرا می شود، نتیجه ی زیر را تولید می کند:
1 | PL/SQL procedure successfully completed |
در زیر جزئیات PL / SQL نوع داده های کاراکتر از پیش تعریف شده و انواع زیر آنها است.
S.No | نوع داده و توضیحات |
---|---|
۱ | CHAR رشته کاراکتر ثابت با حداکثر اندازه ۳۲،۷۶۷ بایت
|
۲ | VARCHAR2 رشته کاراکتر با طول متغیر با حداکثر اندازه ۳۲،۷۶۷ بایت
|
۳ | RAW رشته باینری یا بایت متغیر با حداکثر اندازه ۳۲،۷۶۷ بایت، توسط PL / SQL تفسیر نشده است.
|
۴ | NCHAR رشته کاراکتر ثابت با حداکثر اندازه ۳۲،۷۶۷ بایت.
|
۵ | NVARCHAR2 رشته کاراکترهای متغیر با طول حداکثر ۳۲،۷۶۷ بایت
|
۶ | LONG رشته کاراکتر با طول متغیر با حداکثر اندازه ۳۲،۷۶۰ بایت
|
۷ | LONG RAW رشته باینری یا بایت متغیر با حداکثر اندازه ۳۲،۷۶۰ بایت، توسط PL / SQL تفسیر نشده است
|
۸ | ROWID شناسه ردیف فیزیکی، آدرس یک ردیف در یک جدول معمولی
|
۹ | UROWID شناسه ردیف جهانی (شناسه ردیف فیزیکی، منطقی یا خارجی) |
نوع داده BOOLEAN مقادیر منطقی را که در عملیات منطقی استفاده می شود، ذخیره می کند. مقادیر منطقی مقادیر بولر TRUE و FALSE و مقدار NULL هستند.
با این حال، SQL نوع داده PL / SQL ای معادل BOOLEAN ندارد. بنابراین، مقادیر بولین را نمی توان در اظهارات SQL توابع ساخته شده در SQL (مانند TO_CHAR) توابع PL / SQL از دستورات SQL فراخوانی شده است.
نوع داده DATE برای ذخیره تاریخ های طولانی مدت ثابت است که شامل زمان روز در ثانیه از نیمه شب است. تاریخ های معتبر بین ۱ ژانویه، ۴۷۱۲ پیش از میلاد تا ۳۱ دسمبر سال ۹۹۹۹ میلادی است.
فرمت تاریخ پیش فرض توسط پارامتر مقداردهی اولیه اوراکل NLS_DATE_FORMAT تنظیم شده است. به عنوان مثال، به طور پیش فرض ممکن است “DD-MON-YY” باشد، که شامل یک عدد دو رقمی برای روز ماه، اختصار نام ماه و دو رقم آخر سال است. به عنوان مثال ۰۱-OCT-12.
هر تاریخ شامل قرن، سال، ماه، روز، ساعت، دقیقه و ثانیه است. جدول زیر مقادیر معتبر برای هر فیلد را نشان می دهد.
نام زمینه | ارزش تاریخ معتبر | ارزش فاصله درست |
---|---|---|
YEAR | -۴۷۱۲ تا ۹۹۹۹ (به غیر از سال ۰) | هر عدد صحیح غیر صفر |
MONTH | ۰۱ تا ۱۲ | ۰ تتا ۱۱ |
DAY | ۰۱ تا ۳۱ (با مقادیر MONTH و YEAR، با توجه به قوانین تقویم محلی) محدود می شود | هر عدد صحیح غیر صفر |
HOUR | ۰۰ تا ۲۳ | ۰ تا ۲۳ |
MINUTE | ۰۰تا ۵۹ | ۰ تا ۵۹ |
SECOND | ۰۰ تا ۵۹٫۹ (n)، جایی که ۹ (n) دقیق ثانیه ثانیه است | ۰ تا ۵۹٫۹ (n)، جایی که ۹ (n) دقیق ثانیه های کسری بازه است |
TIMEZONE_HOUR | -۱۲ تا ۱۴ (در محدوده زمانی که تغییرات نور پس زمینه تغییر می کند) | قابل اجرا نیست |
TIMEZONE_MINUTE | ۰۰ تا ۵۹ | قابل اجرا نیست |
TIMEZONE_REGION | در نمایش عملکرد پویا V $ TIMEZONE_NAMES یافت می شود | قابل اجرا نیست |
TIMEZONE_ABBR | در نمایش عملکرد پویا V $ TIMEZONE_NAMES یافت می شود | قابل اجرا نیست |
داده های بزرگ (LOB) انواع داده PL / SQL به اقلام داده بزرگ مانند متن، تصاویر گرافیکی، کلیپ های ویدئویی و شکل موج صدا اشاره دارد. انواع داده LOB اجازه می دهد دسترسی کارا، تصادفی، بسته بندی به این داده ها. در زیر انواع داده های PL / SQL LOB از پیش تعیین شده است.
نوع داده | توضیحات | اندازه |
---|---|---|
BFILE | مورد استفاده برای ذخیره اشیاء باینری بزرگ در فایل های سیستم عامل خارج از پایگاه داده. | وابسته به سیستم نمی توان ۴ گیگابایت (GB) تجاوز کرد. |
BLOB | مورد استفاده برای ذخیره اشیاء باینری بزرگ در پایگاه داده. | ۸ تا ۱۲۸ ترابایت (TB) |
CLOB | مورد استفاده برای ذخیره بلوک های بزرگ از داده های شخصیت در پایگاه داده. | ۸ تا ۱۲۸ ترابایت |
NCLOB | مورد استفاده برای ذخیره بلوک های بزرگ از داده های NCHAR در پایگاه داده. | ۸ تا ۱۲۸ ترابایت |
یک زیرگروه یک زیر مجموعه از نوع داده دیگری است که نوع پایه آن نامیده می شود. یک زیرگروه همان عملیات معتبر را به عنوان نوع پایه خود دارد، اما فقط یک زیر مجموعه از مقادیر معتبر آن است.
PL / SQL چندین نوع زیر را در STANDARD بسته بندی می کند. به عنوان مثال، PL / SQL پیش فرض های زیر را CHARACTER و INTEGER را به صورت زیر تعریف می کند:
1 2 | SUBTYPE CHARACTER IS CHAR; SUBTYPE INTEGER IS NUMBER(38,0); |
شما می توانید زیرمجموعه های خود را تعریف و استفاده کنید. برنامه زیر نشان دهنده تعریف و استفاده از یک زیرمجموعه تعریف شده توسط کاربر است.
1 2 3 4 5 6 7 8 9 10 11 | DECLARE SUBTYPE name IS char(20); SUBTYPE message IS varchar2(100); salutation name; greetings message; BEGIN salutation := 'Reader '; greetings := 'Welcome to the World of PL/SQL'; dbms_output.put_line('Hello ' || salutation || greetings); END; / |
هنگامی که کد بالا در SQL اجرا می شود، نتیجه زیر را تولید می کند.
1 2 3 | Hello Reader Welcome to the World of PL/SQL PL/SQL procedure successfully completed. |
مقادیر PL / SQL NULL نشان دهنده داده های خراب یا ناشناخته است و آنها یک عدد صحیح، یک کاراکتر یا هر نوع نوع داده خاص نیستند. توجه داشته باشید که NULL همانند یک رشته داده خالی یا مقدار صفر صفر نیست ‘\ ۰’ نیست. یک صفر می تواند اختصاص داده شود، اما نمی توان آن را با هیچ چیز، از جمله خود، معادل کرد.
در این پست آموزشی آموزش انواع داده PL / SQL را با هم خواندیم امید واریم از خواندن آن لذت برده باشید.