رفع خطای can bind a LONG value only for insert into a LONG column در پایگاه دادهی اوراکل
بیش از هر چیز باید بگویم که این نوشته مربوط به برنامهنویسی در فریمورک اسپرینگ و هایبرنیت همراه با دیتابیس اوراکل است؛ اگر با این فریمورک آشنایی ندارید، خواندن این نوشتهی من در مورد این چهارچوب برنامهنویسی میتواند برای شما مفید باشد. پایگاه دادهی اوراکل (oracle) جزء قویترین پایگاهدادهها یا DBMS در دنیای نرمافزار به شمار میرود. از جمله ویژگیهای آن میتوان به سرعت بالا در دسترسی به دادهها، ضریب امنیتی بالا، کنترل همزمانی، توانایی نگهداری حجم انبوه اطلاعات و … اشاره نمود. در این نوشته به بررسی یک مشکل که به هنگام ذخیره یک فایل در اوراکل ممکن است پیش بیاید، میپردازیم.
معمولا برای ذخیره فایل یک property با نوع دادهای []byte در پایگاه داده در فایل هایبرنیت از نوع binary استفاده میکنیم:
در این حالت در پایگاه داده اوراکل نوع دادهای (RAW(255 برای این ستون در نظر گرفته میشود؛ اما این امر باعث میشود که در هنگاه ذخیره یک فایل (مثلا یک تصویر) در پایگاه داده با خطای زیر مواجه شویم:
دلیل این خطا محدودیت اندازه نوع دادهای (RAW(255 است. حال اگر در فایل هایبرنت نوع ستون را به blob تغییر دهیم؛
در اینصورت با خطای زیر مواجه میشویم:
دلیل این خطا این است که در سطح هایبرنت، تبدیل نوع از باینری به blob نمیتواند انجام شود.
راهحل: برای رفع این مشکل بایستی در فایل هایبرنت برای نوع ستون از همان نوع binary استفاده نمود و در پایگاه داده به صورت دستی نوع ستون را از (RAW(255 به blob تغییر داد.
برچسبها:آموزش اوراکل،آموزش نرمافزار اوراکل،مرتضی اسدی،Morteza Asadi،برنامهنویسی،