পোস্টগ্রিসে এসপিডি থেকে কপির ব্যবহার


14

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

আমি স্ক্রিপ্টগুলি ক্যোরি এবং পিজিস্ক্রিপ্ট হিসাবে উভয়ই চালনার চেষ্টা করেছি, তবে উভয় উপায়েই কপির কাছ থেকে প্রথম সারিতে আমি একটি ত্রুটি পেয়েছি।

আমি pgAdminIII ব্যবহার করছি এবং আমি পোস্টগ্রিএসকিউএল 9.2.4.1 কে ডিবি ড্রাইভার হিসাবে ইনস্টল করতে স্ট্যাকবিল্ডার ব্যবহার করেছি। আমি কি এমন কিছু বেসিক কনফিগারেশন অনুপস্থিত হতে পারি যা আমাকে এই কমান্ডটি চালানো থেকে আটকাচ্ছে, বা আমি ঠিক বুঝতে পারি না যে তারা এটি কার্যকরভাবে চালায়?

সম্পাদনা:
ত্রুটিটি হ'ল:

ERROR:  syntax error at or near "7"
LINE 5600: 7 4 13 37 2012-03-10 16:41:43.797787 2012-03-10 16:41:43.797...
           ^

********** Error **********

ERROR: syntax error at or near "7"
SQL status: 42601
Char: 140891`

পাঠ্যটি কোথায়:

COPY action_abilitations (id, group_action_id, partecipation_role_id, group_id, created_at, updated_at) FROM stdin;
7   4   13  37  2012-03-10 16:41:43.797787  2012-03-10 16:41:43.797787`

1
ডিবিএএসই তে স্বাগতম আপনি প্রয়োজন (ধারণকৃত) যে ধরনের প্রশ্ন করে ত্রুটি বার্তাটি অন্তর্ভূক্ত করে নেয়। যদি আপনার লোকেল অ-ইংরেজি না হয়, আপনি স্ক্রিপ্টটি চালানোর আগে আপনি ডিফল্ট ইংলিশ ত্রুটি বার্তাগুলি পাওয়ার আগে আপনার সেশনে এটি পুনরায় সেট করতে পারেন: SET lc_messages = Cকেবল এটি আপনার এসকিউএল সম্পাদক উইন্ডোতে চালান, যা একটি সেশনটিতে "অন্তর্ভুক্ত" থাকে।
এরউইন ব্র্যান্ডসটেটার

ধন্যবাদ, আমি কীভাবে আমার লোকেল পরিবর্তন করব তা বোঝার চেষ্টা করছি, কীভাবে এটি করব তা বুঝতে পেরে আমি ত্রুটি বার্তাটি অন্তর্ভুক্ত করব।
ইউজিনিও লাঘি

1
ওহ, আমি একক উদ্ধৃতি ভুলে গেছি: SET lc_messages = 'C'
এরউইন ব্র্যান্ডসেটেটার

উত্তর:


10

pgScript হ'ল পিজিএডমিনের স্থানীয় স্ক্রিপ্ট এক্সটেনশন, যা আপনি সম্ভবত এখানে চান না

পিজিএডমিন একটি জিইউআই, কনসোল অ্যাপ্লিকেশন নয় - এমন কোনও কিছুই নেই যা stdinআপনি সহজেই ব্যবহার করতে পারেন। যদি stdinআপনার সামগ্রীটি প্রবাহিত করতে হয় তবে পিএসকিএল \copy- এর মেটা-কমান্ড সহ, পিএসকিএল ব্যবহার করুন যা একটি কনসোল অ্যাপ্লিকেশন ।

আপনার যদি কোনও ফাইল থাকে (যা আপনি অবশ্যই করেন), কেবলমাত্র COPYপিজএডমিন থেকে এসকিউএল ব্যবহার করুন :

COPY action_abilitations (id, group_action_id, ...)
FROM 'C:\Users\usernexus\Desktop\database05-12-2012.sql';

ফাইলটি postgresসিস্টেম ব্যবহারকারীদের জন্য পঠনযোগ্য হওয়া দরকার ।

এই ঘনিষ্ঠভাবে সম্পর্কিত অনুরোধ আরও তথ্য pgAdmin সমর্থন তালিকার


ঠিক আছে, আপনি বোঝাতে চাচ্ছেন আমি মত একটি লাইন দিয়ে স্ক্রিপ্টটি রান করা উচিত: psql postgres -p 5432 -f C:\Users\usernexus\Desktop\database05-12-2012.sql? এছাড়াও, আমি স্থানীয়ভাবে কেবল সবকিছুই চেষ্টা করছি, আমি আমার ল্যাপটপে pgAdmin ইনস্টল করেছি।
ইউজিনিও লাঘি

1
@ ইউজিনিওলাগি: ঠিক নয়। psql -fএকটি এসকিউএল স্ক্রিপ্ট ফাইল চালায়। আপনি একটি ডেটা ফাইল নিয়ে কাজ করছেন বলে মনে হচ্ছে । আমি আমার উত্তর আপডেট।
এরউইন ব্র্যান্ডসটেটার

ধন্যবাদ! শুরুতে আমি একটি স্ক্রিপ্ট কার্যকর করার চেষ্টা করছিলাম, তবে এখন অন্তত আমি কীভাবে কোনও ফাইল থেকে ডেটা কপি করব তা বুঝতে পেরেছি! গতকাল সন্ধ্যায় আমি বুঝতে খুব ক্লান্ত হয়ে পড়েছিলাম .. :)
Eugenio Laghi

আপনি কীভাবে নিশ্চিত হন যে পোস্টগ্রিজ ব্যবহারকারী ফাইলটি পড়তে পারে। আমি এটি টিএসটি ফাইলের জন্য এমনকি আমার ডেস্কটপের জন্যও করেছি (যেখানে ফাইলটি রয়েছে) তবে অনুমতিটি এখনও অস্বীকার করা হয়েছে।

@ জিও: দয়া করে পোস্টগ্র্রেস সংস্করণ, ওএস সহ একটি নতুন প্রশ্ন শুরু করুন যেখানে ফাইলটি রয়েছে, আপনি যে শব্দটি ব্যবহার করেছেন তার কমান্ড এবং প্রাসঙ্গিক হলে আরও কিছু ...
এরউইন ব্র্যান্ডসটেটার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.