পদ্ধতির মতো, আপনি একটি ডাটাবেসে ফাংশন তৈরি করতে পারেন এবং সেগুলি সংরক্ষণ করতে পারেন।
সিনট্যাক্স
নিচে a(MySQL) ডাটাবেসে একটি ফাংশন তৈরি করার সিনট্যাক্স রয়েছে:
<প্রে>ফাংশন তৈরি করুন ফাংশন_নাম(ইনপুট_আর্গুমেন্ট) রিটার্নস আউটপুট_প্যারামিটারBEGIN ডিক্লেয়ার ভেরিয়েবল; বিবৃতি . . . . . . . . . ডেটা_টাইপ ফেরত; শেষউদাহরণ
ধরুন আমাদের Emp নামের একটি টেবিল আছে নিম্নলিখিত বিষয়বস্তু সহ ডাটাবেসে:
+---------+---------------+----------------+| নাম | DOB | অবস্থান |+---------+---------------+----------------+| অমিত | 1970-01-08 | হায়দ্রাবাদ || সুমিত | 1970-01-08 | বিশাখাপত্তনম || সুধা | 1970-01-05 | বিজয়ওয়াড়া |+---------+------------+----------------+
নিচে একটি ফাংশন তৈরির উদাহরণ দেওয়া হল। এখানে, আমরা getDob() নামে একটি ফাংশন তৈরি করছি যা কর্মচারীর নাম গ্রহণ করে, DOB কলাম(গুলি) এর মান পুনরুদ্ধার করে এবং ফেরত দেয়।
ফাংশন তৈরি করুন getDob(emp_name VARCHAR(50)) ফেরার তারিখBEGINতারিখের জন্ম তারিখ ঘোষণা করুন;ইএমপি থেকে DOB-কে dateOfBirth-এ নির্বাচন করুন যেখানে Name =emp_name;return dateOfBirth;END
JDBC ব্যবহার করে একটি ফাংশন কল করা
আপনি CallableStatement ব্যবহার করে একটি ফাংশন কল করতে পারেন JDBC প্রোগ্রাম ব্যবহার করে একটি ফাংশন কল করার জন্য আপনার প্রয়োজন।
-
ডাটাবেসের সাথে সংযোগ করুন।
-
একটি প্রস্তুত বিবৃতি তৈরি করুন৷ অবজেক্ট এবং এর কনস্ট্রাক্টরকে স্ট্রিং ফরম্যাটে ফাংশন কল পাস করুন।
-
স্থানধারীদের মান সেট করুন।
-
কলযোগ্য বিবৃতিটি চালান৷
৷
JDBC থেকে একটি ফাংশন কল করার প্রশ্নটি নিম্নরূপ:
<প্রে>{? =কল getDob(?)}আপনি যেমন লক্ষ্য করেন যে কোয়েরিতে প্রস্তুত এবং কলযোগ্য বিবৃতিগুলির মতোই স্থানধারক (?) রয়েছে৷
৷উপরের ক্যোয়ারীতে প্রথম স্থানধারকটি ফাংশনের রিটার্ন মানকে প্রতিনিধিত্ব করে এবং দ্বিতীয় স্থানধারকটি ইনপুট প্যারামিটারকে উপস্থাপন করে৷
আপনাকে registerOutParameter() ব্যবহার করে একটি আউটপুট প্যারামিটার হিসাবে রিটার্ন মান প্রতিনিধিত্বকারী স্থানধারকটিকে নিবন্ধন করতে হবে পদ্ধতি (ক্যালেবল স্টেটমেন্ট ইন্টারফেসের)। এই পদ্ধতিতে আপনাকে স্থানধারকের অবস্থানের প্রতিনিধিত্ব করে একটি পূর্ণসংখ্যা মান পাস করতে হবে এবং, sql প্রকার (প্যারামিটারের) প্রতিনিধিত্বকারী একটি পূর্ণসংখ্যা পরিবর্তনশীল
cstmt.registerOutParameter(1, Types.DATE);
setString() পদ্ধতি ব্যবহার করে ইনপুট প্যারামিটারে মান সেট করুন। (যেহেতু getDoc() ফাংশন VARCHAR প্রকারের একটি মান গ্রহণ করে।
উদাহরণ
JDBC প্রোগ্রাম অনুসরণ করে getDob ফাংশনটি কার্যকর করে এবং ফলাফল পুনরুদ্ধার করে:
import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Types; পাবলিক ক্লাস কলিং ফাংশনস ব্যবহার করেCallable2 { প্রধান স্টাটিক রিং ]) SQLException নিক্ষেপ করে {//ড্রাইভার DriverManager.registerDriver(new com.mysql.jdbc.Driver()) নিবন্ধন করা; // সংযোগ পাওয়া হচ্ছে স্ট্রিং mysqlUrl ="jdbc:mysql://localhost/sampleDB"; সংযোগ কন =DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("সংযোগ প্রতিষ্ঠিত......"); // একটি CallableStatement CallableStatement প্রস্তুত করা হচ্ছে cstmt =con.prepareCall("{? =call getDob(?)}"); cstmt.registerOutParameter(1, Types.DATE); cstmt.setString(2, "অমিত"); cstmt.execute(); System.out.print("জন্ম তারিখ:"+cstmt.getDate(1)); }}
আউটপুট
সংযোগ প্রতিষ্ঠিত...... জন্ম তারিখ:1970-01-08