কোন নামটি অস্পষ্ট একটি পদ্ধতিটি কীভাবে মুছবেন?


12

আমি ইনফর্মিক্স ব্যবহার করছি ...

আমি কীভাবে এটি করেছি তা জানি না, তবে আমার ডাটাবেসে একই নামের দুটি পদ্ধতি রয়েছে। যখন আমি এগুলি দিয়ে তাদের সরিয়ে দেওয়ার চেষ্টা করি

DROP PROCEDURE myProc;

তারপরে আমি একটি ত্রুটি বার্তা পাই

ERROR: Routine (add_adr_trigger_row) ambiguous - more than one
routine resolves to given signature.
Error Code: -9700

আমি কীভাবে পদ্ধতিগুলি বাদ দিতে পারি?

উত্তর:


13

আপনার একই নাম সহ 2 বা ততোধিক পদ্ধতি রয়েছে, তবে বিভিন্ন সংখ্যার ইনপুট পরামিতি সহ এটি ঘটে।

উদাহরণস্বরূপ, আপনি 2 টি পদ্ধতি তৈরি করেছেন:

CREATE PROCEDURE myProc(param1)
...
CREATE PROCEDURE myProc(param1, param2)
...

দ্বিতীয়টি মুছতে আপনার কাছে দুটি বিকল্প রয়েছে:

সহজটি:

DROP PROCEDURE myProc(param1, param2);

কঠিন এক:

dbaccess DB -
select procname, procid, numargs from sysprocedures where procname like 'myProc';
procname  myProc
procid    1
numargs   1

procname  myProc
procid    2
**numargs   2**

UPDATE sysprocedures SET procname='myProcOLD' WHERE procid=2;
DROP PROCEDURE myProcOLD;

এমনকি যদি প্রথম পদ্ধতিটি মৃত সহজ হয় তবে প্রথমবার রাতে এই একই সমস্যার জন্য আমি মাঝরাতে ফোন করি, আমি দ্বিতীয়টি বেছে নিয়েছি। আমার খারাপ ...


এছাড়াও, এই ধরণের ত্রুটি সম্পর্কে আরও তথ্য দেখতে আপনি আপনার এসএসএস কনসোলে "ফাইন্ডার 9700" ব্যবহার করতে পারেন। তথ্য প্রায়শই খুব দরকারী উদাহরণস্বরূপ, ধরে নিন যে রুটিন_নাম (প্যারামটাইপ 1) এবং রুটিন_নাম (প্যারামটাইপ 2) নামে দুটি রুটিন উপস্থিত রয়েছে এবং রুটিন_নামটি রুটিন_নাম (আরগটিপ) দিয়ে ডাকা হয়। এছাড়াও, অন্তর্নিহিত ক্যাসেটগুলি আরগটাইপ থেকে প্যারামটাইপ 1 এবং আরগটাইপ থেকে প্যারামটাইপ 2 পর্যন্ত বিদ্যমান। এই ক্ষেত্রে, এই ত্রুটি উত্থাপিত হয়।
এমটিআইহাই

পিটার, @ এমটিআইহাই যদি এই সমাধান হত তবে আমরা কি এটি একটি উত্তর নিয়ে যেতে পারি?
jcolebrand

0

যদি আপনি সচেতন হন যে ভবিষ্যতে এটি সমস্যা হতে পারে তবে আপনি একটি বিশেষ নাম দিয়ে আপনার পদ্ধতিটি তৈরি করতে পারেন, যা অবশ্যই ডাটাবেসের সমস্ত পদ্ধতিতে অনন্য হতে হবে।

আপনি প্রক্রিয়াটি তৈরি করার সময় যদি সমস্যা হয় তবে আপনি যদি সচেতন না হন তবে আপনি আনুষ্ঠানিকভাবে ফিরে গিয়ে কোনও নির্দিষ্ট নাম যুক্ত করতে পারবেন না এবং আপনার সমস্যা আছে have

sysproceduresনির্বাচিত উত্তরের আপডেটটি কেবলমাত্র তখনই কাজ করা উচিত যদি ব্যবহারকারী informix(বা কোনও ব্যক্তিগত সার্ভারের ক্ষেত্রে সার্ভারের মালিক হিসাবে) সংযুক্ত থাকে।

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