পার্শ্ব প্রতিক্রিয়া সহ স্ট্যান্ডার্ড এসকিউএল ফাংশন আছে?


11

এসকিউএল স্ট্যান্ডার্ডগুলি পার্শ্ব-প্রতিক্রিয়াগুলির সাথে ফাংশনগুলি সংজ্ঞায়িত করে?

উদাহরণস্বরূপ, ফাইলগুলিতে * লেখার জন্য বা যখন আপনি কিছু পছন্দ করেন তখন কোনও টেবিলের নির্দিষ্ট কলামে মানগুলি আপডেট করার জন্য তাদের কি ফাংশন রয়েছে?

SELECT myfunction(params...);

আমি এগুলি মাঝে মাঝে দেখেছি, তবে এসকিউএল মানগুলি যদি একই রকম করে তবে আমি কেবল কৌতূহলী।


* এটি পোস্টগ্রিএসকিউএল বিশেষত কোনও প্রশ্ন নয়। পোস্টগ্র্রেএসকিউএল-এ আমি যে পার্শ্ব-প্রতিক্রিয়া উদাহরণগুলি দেখছি তা কেবল ব্যবহার করছি।


বিভিন্ন প্ল্যাটফর্মগুলিতে ফাংশনগুলি খুব আলাদা, তবে হ্যাঁ, ওরাকলে মোটামুটি মানক (অর্থাত্ ওরাকল-সরবরাহিত) অ্যাড-অন ফাংশন রয়েছে উদাহরণস্বরূপ, ইমেল প্রেরণের জন্য। এবং এসকিউএল সার্ভারে নিউআইডিআইডি এবং আরএএনডি-র মতো ননডিটারনিস্টিক ফাংশন রয়েছে এবং এসকিউএল সার্ভারে ফাংশনগুলিও বর্ধিত পদ্ধতিগুলি ডেকে আনে।
ক্যাড রক্স

3
যদি প্রশ্ন করা হয় " করে এসকিউএল মান ফাংশন যে অন্তর্ভুক্ত আছে পার্শ্ব প্রতিক্রিয়া " আমি মনে করি উত্তর নেই। যদি প্রশ্নটি হয় " এসকিউএল স্ট্যান্ডার্ড কী এমন ফাংশনগুলি লেখার অনুমতি দেয় যাগুলির পার্শ্ব প্রতিক্রিয়া রয়েছে " তবে আমি মনে করি উত্তরটি হ্যাঁ।
a_horse_with_no_name

@ a_horse_with_no_name, ধন্যবাদ আমার প্রশ্নটি ছিল স্টাইল এবং সম্মেলনের বিষয়ে প্রাক্তন।
tinlyx

উত্তর:


18

আপনার এখানে কয়েকটি ভিন্ন প্রশ্ন রয়েছে।

প্রশ্ন: এএনএসআই স্ট্যান্ডার্ড এসকিউএল ফাংশনগুলি কী কী?

এএনএসআই স্ট্যান্ডার্ড ফাংশনগুলি এভিজি, COUNT, এমআইএন, ম্যাক্সের মতো জিনিস। তারা 1992 এএনএসআই স্ট্যান্ডার্ডে আচ্ছাদিত , তবে এটি একটি শুকনো, বিরক্তিকর পড়ার এক হেক।

প্রশ্ন: এএনএসআই স্ট্যান্ডার্ড এসকিউএল ফাংশনগুলি কি ডাটাবেসে ডেটা পরিবর্তন করে?

না। আপনি তাদের ডেটা পরিবর্তন করতে ব্যবহার করতে পারেন - উদাহরণস্বরূপ, আমি বলতে পারি:

INSERT INTO dbo.MyReport SELECT MAX(SalespersonRevenue) FROM dbo.Sales

তবে তাদের দ্বারা, কেবল একটি এভিজি, COUNT, এমআইএন, ম্যাক্স ইত্যাদি ব্যবহারের ফলে আপনার ডাটাবেসের অভ্যন্তরে স্থায়ীভাবে ডেটা পরিবর্তন করা উচিত নয়।

প্রশ্ন: এএনএসআই মানদণ্ডটি কি আমাকে আমার নিজের ফাংশনগুলি লেখার অনুমতি দেয়?

হ্যাঁ, তবে সঠিক প্রয়োগটি বিক্রেতার কাছে বিক্রেতার কাছে পরিবর্তিত হয়। আপনার লেখা ফাংশনগুলি এএনএসআই ভাষার মান মেনে চলতে পারে তবে আপনি নিজের ফাংশনের ভিতরে যা করেন তা পার্শ্ব প্রতিক্রিয়া তৈরির মতো ভয়াবহ আকার ধারণ করতে পারে।

  • উদ্দেশ্যমূলক আচরণ নিয়ে আলোচনা করার সময় , ক্রস-প্ল্যাটফর্মের উত্তর পাওয়া সম্ভব।
  • পার্শ্ব প্রতিক্রিয়া আলোচনা করার সময় , এটি হয় না।

প্রশ্ন: আমি কি ডেটা লেখার জন্য নিজস্ব ফাংশন তৈরি করতে পারি?

কেন নিশ্চিত, আপনি যদি সৃজনশীল হন। আমি একজন মাইক্রোসফ্ট এসকিউএল সার্ভার লোক, তাই আমি সেই প্ল্যাটফর্মটিতে ফোকাস করতে যাচ্ছি। বই অনলাইন এর ফাংশন পৃষ্ঠাতে বলা হয়েছে:

ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি এমন ক্রিয়া সম্পাদন করতে ব্যবহার করা যাবে না যা ডাটাবেস স্থিতি সংশোধন করে।

যা আমি বলি:

তুমি আমার আসল বাবা নও

সুতরাং এখানে আমি কীভাবে নিয়মগুলি ভঙ্গ করব। সতর্কতা: খুব খারাপ ধারণা অনুসরণ করে।

  • আপনার কার্যক্রমে, এই অশুভ উদ্দেশ্যে বিশেষভাবে তৈরি করা একটি নতুন টেবিলটি জিজ্ঞাসা করুন এবং তারপরে এমন কিছু তৈরি করুন যা নির্বাচিত বিবৃতিগুলির জন্য টেবিলটি দেখে এবং তারপরে কোনও ক্রিয়াকলাপ ছড়িয়ে দেয় (বর্ধিত ইভেন্টস, অডিটিং বা কোনও প্রোফাইলার ট্রেস)। এই নির্বাচিত বিবৃতিগুলির উপর ভিত্তি করে কাজ সম্পাদন করতে আপনি কোনও রুবে গোল্ডবার্গের ধরণের বিপরীতে মিশ্রিত করতে পারেন।
  • ফাংশনে, সিএলআর কোডটি কল করুন - হেক, আপনি এমনকি একটি ওয়েব পরিষেবা কল করতে পারেন । এই ওয়েব পরিষেবাটি খুব ভালভাবে আপনার নিজের ডাটাবেসে ডেটা আবার ঠেলে দিতে পারে।
  • ফাংশনে, xp_cmdshell কল করুন এবং কমান্ড প্রম্পটের মাধ্যমে কিছু করুন। (মন্তব্যগুলিতে এইচটি @ অ্যারোনবার্ট্র্যান্ড।)

এই সমস্ত উদাহরণের কার্যকারিতা এবং লেনদেনের ধারাবাহিকতার আকারে বিশাল ত্রুটি রয়েছে। আপনি কেবল জিজ্ঞাসা করেছেন যে এটি তাত্ত্বিকভাবে করা যায় কিনা, এবং উত্তরটি হ্যাঁ আছে। আমি তাদের নিজের কোডগুলিতে কখনও ব্যবহার করব না - আমি পিছনে এসে জিজ্ঞাসা করব, "আমি এখানে যে ব্যবসায়িক লক্ষ্য অর্জন করতে চাইছি তা কী, এবং পারফরম্যান্স এবং লেনদেনের ধারাবাহিকতা অর্জনের জন্য আমি কীভাবে এটি করতে পারি? ? " যদি আপনি সেগুলির বিষয়ে নির্দিষ্ট পরামর্শ চান তবে আমি নির্দিষ্টকরণের সাথে একটি পৃথক স্ট্যাক প্রশ্ন জিজ্ঞাসা করব।


ধন্যবাদ। এসকিউএল স্ট্যান্ডার্ড না দেয়, তবে পিএসএম কোনও ফাংশন বা পদ্ধতিকে পার্শ্ব প্রতিক্রিয়ার অনুমতি দেয়?
টিম


-3

আমি কেবল এসকিউএল সার্ভার সম্পর্কিত নির্দিষ্টভাবে বলতে পারি, এবং এটি সমস্ত ডাটাবেস বাস্তবায়নের সাথে সামঞ্জস্যপূর্ণ নয় বলে মনে হয়। তবে এসকিউএল সার্ভারে ফাংশনগুলি পার্শ্ব প্রতিক্রিয়া তৈরি করতে পারে না। এটি একটি কঠোর এবং দ্রুত নিয়ম যা আমি বেশ কয়েকবার সাফল্য না দিয়ে বহুবার আটকানোর চেষ্টা করেছি।

আপনি যদি সাধারণ অর্থে ফাংশন সম্পর্কে চিন্তাভাবনা করেন তবে এমন এসকিউএল মডিউল রয়েছে যা পার্শ্ব প্রতিক্রিয়াগুলিকে অনুমতি দেয় (উদাহরণস্বরূপ সঞ্চিত প্রক্রিয়া) তবে ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি তা করে না।

"ক্লেভার সলিউশন ডোন স্কেল" একটি প্রবাদ নেই যা মাইক্রোসফ্ট পণ্যগুলির সাথে বিশেষভাবে সত্য। এসকিউএল সার্ভারের প্রারম্ভিক সংস্করণগুলিতে আমি বেশ কয়েকটি চতুর কাজ দেখেছি যা পরবর্তী সংস্করণগুলিতে অপ্রচলিত হয়ে পড়েছিল, কারণ এমএস তাদের সত্য বৈশিষ্ট্য হিসাবে যুক্ত করেছে।

যেগুলি কখনই বৈশিষ্ট্যগুলিতে পরিণত হয় নি, সততার সাথে সেগুলি কখনই বৈশিষ্ট্যগুলিতে পরিণত হয়নি কারণ তারা মূলত টি-এসকিউএল বিকাশের কিছু দিক ভেঙেছে। ফাংশনগুলিতে পার্শ্ব প্রতিক্রিয়া তাদের মধ্যে একটি।


মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
পল হোয়াইট 9
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.