একরকম, মনে হয় এসকিউএল * প্লাস (কমপক্ষে উইন্ডোজটিতে) যখন ডাকা হয় @@
এবং যখন পাথটি একক বা ডাবল ডট দিয়ে শুরু হয় তখন কোনও আপেক্ষিক পাথের সাথে কোনও স্ক্রিপ্ট সনাক্ত করতে অক্ষম ।
উদাহরণস্বরূপ, x:\some\where
আমার অধীনে নিম্নলিখিত ডিরেক্টরি কাঠামো রয়েছে:
script.sql
main-dir\main-sub-dir
call-script.sql
script.sql
এটি: দুটি script.sql
কিন্তু বিভিন্ন লোকেশনে।
বিষয়বস্তুর script.sql
শুধু অধীন x:\some\where
সহজভাবে হয়
prompt SCRIPT root
অন্যের script.sql
বিষয়বস্তু হয়
prompt SCRIPT main-dir/main-subdir
call-script.sql
সার্চ
@@script.sql
@ script.sql
প্রত্যাশিত আউটপুট
যদি আমি এসকিউএল * প্লাস শুরু করি x:\some\where
এবং তারপরে একটি করি
@main-dir/main-sub-dir/call-scripts
আউটপুট হবে
SCRIPT main-dir/main-subdir
SCRIPT root
এটি প্রত্যাশিত, যেহেতু সিঙ্গল @
থেকে এসকিউএল * প্লাস শুরু হয়েছিল @@
সেখান থেকে পাথ অনুসন্ধান করার কথা রয়েছে এবং এটিতে থাকা স্ক্রিপ্টের ডিরেক্টরি থেকে পাথ অনুসন্ধান করার কথা রয়েছে।
অপ্রত্যাশিত আউটপুট
এখন , আমি যদি এটি পরিবর্তন করি call-scripts.sql
:
@@./script.sql
@ ./script.sql
দ্বিগুণ @@
মনে হয় এটির আচরণের পরিবর্তন ঘটবে, এতে এটি এসকিউএল * প্লাস যেখান থেকে শুরু হয়েছিল সেগুলি অনুসন্ধান করে এবং আউটপুটটি এখন হবে
SCRIPT root
SCRIPT root
যা আমি প্রত্যাশা করে তা নয় ।
এই আচরণটি কোথাও নথিভুক্ত করা হয়েছে এবং আরও গুরুত্বপূর্ণভাবে, কীভাবে আমাকে পরিবর্তন করতে হবে call-scripts.sql
যাতে এটি আপেক্ষিক পাথগুলিকে ( @@../../other-dir/other-sub-dir/script
) সঠিকভাবে ডাকে ?
strace
। এখানে প্রাসঙ্গিক কলগুলি রয়েছে: pastebin.com/cVK1QQL4 নোট করুন যে এটি পেস্টবিন আউটপুটে প্রদর্শিত ফাইলগুলি খোলার চেষ্টা করার আগে অন্য কোনও ডিরেক্টরিতে "স্ক্রিপ্ট.এসকিউএল" ফাইলগুলি স্থিত বা অ্যাক্সেস করার চেষ্টা করেনি।