هرچند SQL بسیاری از نیازمندیهای برنامهنویسان را در زمینهی کار با دادهها برطرف مینماید اما در مواقعی که نیاز به پیادهسازی توابع پیچیده یا تبدیل انواع خاص و سفارشی بهم داریم نیاز به استفاده از یک زبان برنامهنویسی سطح بالا وجود دارد. هرچند استفاده از زبانهای برنامهنویسی دیگر در بانکهای اطلاعاتی رابطهای مرسوم نیست و حتی در برخی موارد ممکن است کارایی سیستم را کاهش دهد اما اگر در جای درستی استفاده شود مطمئنا باعث بهبود عملکرد کلی سیستم میشود. بدین منظور، در بانک اطلاعاتی Oracle قابلیت استفاده از زبان برنامهنویسی Java وجود دارد و میتوان متدهای نوشته شده با این زبان را با SQL ادغام و اجرا نمود.
برای تهیهی صورت حساب بانکی (گردش حساب) در SQL روشهای مختلفی وجود دارد که ما در این مطلب یکی از روشهای آن را پیادهسازی میکنیم.
یکی از موارد پُرکاربرد در مهندسی معکوس نرمافزارهای دارای بانک اطلاعاتی جستجوی یک مقدار در کل جدولهای یک بانک اطلاعاتی است.
SQL Server به منظور ارتقا در مدل برنامهنویسی بانک اطلاعاتی خود از نسخه 2005 تکنولوژی SQL CLR را معرفی نمود. این تکنولوژی همچنین با اسامی CLR Integrated ،CLR Enabled و CLR Embedded نیز شناخته میشود. هدف آن این است که شما بتوانید اشیاء بانک اطلاعاتی از قبیل روالهای ذخیره شده (Stored Procedure) ، توابع (Function) و تریگرها (Trigger) را با استفاده از CSharp و یا VB ایجاد کرده و آن را در SQL Server مورد استفاده قرار دهید.
با توجه به نسخه SQL Server روش جستجو و بازگرداندن لیستی از تمام جدولهای ایجاد شده توسط کاربر کمی متفاوت است. در این مطلب به طور خلاصه پرسوجوهایی را بررسی خواهیم کرد که میتوانند برای بازیابی لیست جدولها در همه نسخهها استفاده شوند.
در برخی از سناریوها نیاز به نمایش خروجی چند مقدار به صورت یک مقدار با یک جداکننده مانند کاما داریم. در Oracle میتوان از تابع LISTAGG برای تبدیل نتایج پرسوجو به صورت یک مقدار جداشده با کاما استفاده نمود.
به منظور استفاده از جداول نمونه یکسان در مطالب این وبلاگ تصمیم گرفتم در یک مطلب جداگانه اسکریپتهای مربوط به ایجاد جداول و ثبت دادههای پیش فرض آن را برای هر نوع بانک اطلاعاتی قرار دهم. در این مطلب اسکریپت مربوط به بانک اطلاعاتی Oracle قرار داده شده است.