คำถามติดแท็ก oracle

ฐานข้อมูล Oracle ทุกเวอร์ชัน เพิ่มแท็กเฉพาะรุ่นเช่น oracle-11g-r2 หากบริบทนั้นสำคัญสำหรับคำถาม ห้ามใช้สำหรับผลิตภัณฑ์ Oracle เช่นแอปพลิเคชันหรือมิดเดิลแวร์หรือผลิตภัณฑ์ฐานข้อมูลอื่น ๆ ที่ Oracle เป็นเจ้าของเช่น MySQL หรือ BerkeleyDB

3
สคริปท์ Oracle DDL ในรูปแบบอัตโนมัติ
นักพัฒนา Oracle SQL สามารถส่งออก DDL ผ่านทางTools -> Database Export...นี้ทำงานได้ดีมาก แต่ต้องการการแทรกแซงด้วยตนเอง ฉันรู้DBMS_METADATA.get_ddl()แต่พบว่าการส่งออกไม่สมบูรณ์ ฉันพบปัญหาที่DBMS_METADATADDL ที่ส่งออกไม่สามารถใช้งานได้โดยไม่ต้องแก้ไขปัญหาเช่นแบ่งในช่วงกลางของคำหลักและแย่กว่านั้น อย่างไรก็ตามหากใครรู้วิธีการส่งออก DDL ผ่านDMBS_METADATAสิ่งที่สามารถทำงานได้โดยไม่ต้องแก้ไขด้วยตนเองนั่นก็เป็นทางออกที่ดีเช่นกัน โดยทั่วไปฉันกำลังมองหาวิธีอัตโนมัติ / สคริปต์เพื่อส่งออก DDL เหมือนกับสิ่งที่ส่งออกผ่านทางคู่มือ ฉันจะทำสิ่งนั้นได้อย่างไร

2
OracleBulkCopy ทำอะไรเป็นพิเศษโดยเฉพาะและฉันจะเพิ่มประสิทธิภาพได้อย่างไร
ในการสรุปข้อมูลเฉพาะ: เราจำเป็นต้องทำขั้นตอนประมาณ 5 ล้านแถวในฐานข้อมูลผู้จำหน่าย (Oracle) ทุกอย่างทำงานได้อย่างยอดเยี่ยมสำหรับแถวที่มีขนาด 500k โดยใช้OracleBulkCopy(ODP.NET) แต่เมื่อเราพยายามที่จะขยายขนาดสูงสุด 5M ประสิทธิภาพการทำงานจะเริ่มช้าลงเมื่อทำการรวบรวมข้อมูลเมื่อมันมาถึงเครื่องหมาย 1M จะช้าลงเรื่อย ๆ เมื่อโหลดแถวมากขึ้น หมดเวลาหลังจาก 3 ชั่วโมงหรือมากกว่านั้น ฉันสงสัยว่ามันเกี่ยวข้องกับคีย์หลักบนโต๊ะ แต่ฉันได้สืบค้นฟอรัม Oracle และ Stack Overflow เพื่อดูข้อมูลและสิ่งที่ฉันอ่านขัดแย้งมาก (เช่นกันโพสต์จำนวนมากดูเหมือนจะขัดแย้งกัน ) . ฉันหวังว่าใครบางคนสามารถตั้งค่าการบันทึกตรงคำถามที่เกี่ยวข้องอย่างใกล้ชิดเกี่ยวกับกระบวนการ: ที่ไม่OracleBulkCopyระดับธรรมดาหรือใช้โดยตรงเส้นทางโหลด? มีวิธีที่ฉันสามารถยืนยันสิ่งนี้ไม่ทางใดก็ทางหนึ่งได้หรือไม่? สมมติว่ามันไม่ใช้โดยตรงเส้นทางโหลด: มันเป็นความจริงว่า Oracle จะตั้งค่าดัชนีทั้งหมดจะใช้ไม่ได้ในระหว่างการโหลดและทำให้พวกเขากลับมาออนไลน์หลังจากนั้น? ฉันได้อ่านแถลงการณ์หลายฉบับเกี่ยวกับเอฟเฟกต์นี้ แต่ไม่สามารถยืนยันได้อีก ถ้า # 2 เป็นจริงแล้วมันควรสร้างความแตกต่างใด ๆ ที่ดัชนีอยู่บนตารางก่อนที่ฉันจะเริ่มต้นการดำเนินการคัดลอกจำนวนมาก? ถ้าเป็นเช่นนั้นทำไม เกี่ยวข้องกับ # 3 มีความแตกต่างในทางปฏิบัติโดยทั่วไประหว่างการโหลดจำนวนมากกับดัชนีที่ใช้ไม่ได้กับการลดลงดัชนีจริงก่อนที่จะโหลดและสร้างใหม่ในภายหลังหรือไม่ หาก # …
14 oracle  bulk 

1
ทำไม SQL * PLUS ถึงต้องการสแลชหลังจากสร้าง CREATE TYPE
ฉันเพิ่งมีปัญหาที่ฉันกำหนดประเภทและทดสอบในคางคกและทั้งหมดก็โอเค แต่ทำงานภายใต้ SQL * PLUS มันเกิดข้อผิดพลาด ตัวอย่าง: CREATE OR REPLACE TYPE MyType AS OBJECT ( Item1 NUMBER, Item2 NUMBER ); ด้วยเหตุผลบางอย่างฉันต้องเพิ่มเครื่องหมายทับที่นี่ CREATE OR REPLACE TYPE MyType AS OBJECT ( Item1 NUMBER, Item2 NUMBER ); / สำหรับฉันแล้วมันคล้ายกับคำสั่งสร้างตารางซึ่งไม่ต้องใช้เครื่องหมายทับ ฉันคิดว่ามันค่อนข้างสับสน ฉันรู้ว่ามันทำงานอย่างไร แต่ทุกคนสามารถอธิบายได้ว่าทำไมการตัดสินใจออกแบบนี้จึงเกิดขึ้น

1
ใช้ LDAP เพื่อค้นหาชื่อด้วย Oracle Instant Client
ส่วนหนึ่งเป็นผลมาจากปัญหาเกี่ยวกับเวอร์ชันที่ขัดแย้งกันหรือเป็นพยานเกี่ยวกับการติดตั้งไคลเอนต์ Oracle แบบเต็มทีมพัฒนาของฉัน (ซึ่งฉันเป็นสมาชิก) กำลังก้าวไปสู่การใช้Oracle Instant Clientและหลีกเลี่ยงการติดตั้งบนเครื่องพัฒนาของเรา โครงการใหม่ สิ่งนี้ได้ผลค่อนข้างดีถึงจุดที่เราปรับใช้กับการผลิตด้วยการตั้งค่านี้ เนื่องจากเราเป็นร้านค้า NET ส่วนใหญ่เราจึงใช้ไคลเอ็นต์ดั้งเดิม (พร้อมด้วย. NET wrappers) แทนที่จะเป็นจาวา ตอนนี้ไคลเอนต์ต้องการให้เราลงทะเบียนบริการฐานข้อมูลกับเซิร์ฟเวอร์ LDAP และใช้เซิร์ฟเวอร์ LDAP เพื่อค้นหาชื่อ พวกเขาได้จัดเตรียมsqlnet.oraและldap.oraไฟล์ ( และไฟล์กำหนดค่าการเข้ารหัสประกอบ) ที่ดูเหมือนว่าถูกต้อง โดยเฉพาะอย่างยิ่งsqlnet.oraไฟล์จะระบุ LDAP เป็นแหล่งที่เป็นไปได้สำหรับการค้นหาชื่อบริการสุทธิ: names.directory_path=(tnsnames,ldap) ฉันมั่นใจว่าเครื่องที่ฉันทำงานด้วยสามารถใช้ LDAP เพื่อเข้าถึงบริการได้เนื่องจากฉันสามารถทำได้โดยใช้ SQL Developer (ซึ่งอนุญาตให้ฉันป้อนข้อมูล LDAP โดยตรง) สมมติว่าถูกต้องฉันจะให้ไคลเอ็นต์ทันใจจดจำการกำหนดค่านี้และใช้ LDAP เพื่อค้นหาชื่อได้อย่างไร สิ่งที่ฉันได้ลองมาแล้ว ฉันได้ลองตั้งค่าTNS_ADMINตัวแปรสภาพแวดล้อมไปยังไดเรกทอรีที่มีไฟล์ที่ให้มาและในขณะที่วิธีนี้ใช้งานได้ดีในการทำให้ Instant Client รับรู้tnsnames.oraไฟล์ดูเหมือนว่าจะไม่เพียงพอที่จะเริ่มมองหา LDAP ต่อไปนี้เป็นผลลัพธ์ (โดยเปลี่ยนเส้นทางชื่อผู้ใช้และรหัสผ่าน): (คำสั่งต่อไปนี้เกิดขึ้นเป็น Windows …
14 oracle 

7
ตรวจสอบว่าฐานข้อมูล Oracle เป็นอย่างไร
สำหรับแอปพลิเคชันของเราเรามีไฟล์กำหนดค่าสำหรับเชื่อมต่อกับฐานข้อมูล Oracle (URL, ชื่อผู้ใช้, รหัสผ่าน) แอปพลิเคชันใช้เวลา 2-5 นาทีในการเริ่มต้น หากมีสิ่งผิดปกติกับฐานข้อมูลฉันเห็นสิ่งนี้ในบันทึก แต่ฉันต้องรอ 2-5 นาที นี่เป็นเวลานานมาก ดังนั้นฉันต้องการค้นหาอย่างรวดเร็วและเป็นเพียงวิธีการตรวจสอบว่าฐานข้อมูลนั้นโอเคและออนไลน์ทั้งหมด คุณมีความคิดว่าฉันจะทำอย่างไร?
14 oracle 

1
ฉันจะป้องกัน UNPIVOT ไม่ให้ถูกแปลงเป็น UNION ALL ได้อย่างไร
ฉันมีแบบสอบถามของ Oracle ที่ค่อนข้างซับซ้อนซึ่งใช้เวลาประมาณครึ่งชั่วโมง ถ้าฉันใช้ส่วนที่ช้าของแบบสอบถามและเรียกใช้แยกต่างหากมันจะเสร็จสิ้นในไม่กี่วินาที นี่คือภาพหน้าจอของรายงานการตรวจสอบ SQL สำหรับข้อความค้นหาแยก: นี่คือตรรกะเดียวกันเมื่อเรียกใช้เป็นส่วนหนึ่งของแบบสอบถามแบบเต็ม: สีตรงกับตารางเดียวกันในภาพหน้าจอทั้งสอง สำหรับคำช้า, Oracle จะทำระหว่างสองตารางที่ไม่ได้มีสภาพความเท่าเทียมกันในMERGE JOIN JOINด้วยเหตุนี้จึงมีการประมวลผลแถวกลางประมาณ 150 ล้านแถว ฉันสามารถแก้ไขปัญหานี้ด้วยคำแนะนำการสืบค้นหรือการเขียนใหม่ แต่ฉันต้องการเข้าใจสาเหตุของปัญหาได้มากเท่าที่จะทำได้เพื่อที่ฉันจะได้สามารถหลีกเลี่ยงปัญหานี้ได้ในอนาคตและอาจส่งรายงานข้อผิดพลาดไปยัง Oracle ทุกครั้งที่ฉันได้รับแผนไม่ดีUNPIVOTในข้อความแบบสอบถามจะถูกแปลงเป็นUNION ALLในแผน หากต้องการตรวจสอบเพิ่มเติมฉันต้องการป้องกันไม่ให้เกิดการเปลี่ยนแปลงการค้นหา ฉันไม่สามารถหาชื่อสำหรับการเปลี่ยนแปลงนี้ได้ ฉันยังไม่สามารถค้นหาคำใบ้หรือพารามิเตอร์ขีดล่างที่จะป้องกันได้ ฉันกำลังทดสอบเซิร์ฟเวอร์การพัฒนาเพื่อให้มีอะไรเกิดขึ้น มีอะไรที่ฉันสามารถทำได้เพื่อป้องกันการเปลี่ยนแปลงแบบสอบถามของUNPIVOTการUNION ALL? ฉันใช้ Oracle 12.1.0.2 ฉันไม่สามารถแชร์คิวรีชื่อตารางหรือข้อมูลด้วยเหตุผล IP ฉันไม่สามารถคิดแบบง่าย ๆ ได้ จากที่กล่าวมามันไม่ชัดเจนสำหรับฉันว่าทำไมข้อมูลนั้นจำเป็นต้องใช้ในการตอบคำถาม นี่คือตัวอย่างของแบบสอบถาม UNPIVOT พร้อมกับแบบสอบถามเดียวกันที่ใช้กับ UNION ALL

6
เหตุใดฉันไม่สามารถใช้ค่า Null ในการเข้าร่วมได้
ฉันได้แก้ไขปัญหาการสืบค้นโดยใช้ ... row_number() over (partition by... นี่เป็นคำถามทั่วไปเพิ่มเติมเกี่ยวกับสาเหตุที่เราไม่สามารถใช้คอลัมน์ที่มีค่า Null ในการเข้าร่วมได้ เหตุใดค่าโมฆะจึงไม่เท่ากับค่าว่างเพื่อการเข้าร่วม?
13 oracle  join  null 

3
หลีกเลี่ยงการแสดงออกหลายหรือ `
ฉันมี SQL oracle ต่อไปและผลงานของตนและ แต่มันค่อนข้างน่าเกลียดที่มีทั้งหมดของors มีวิธีรัดกุมกว่านี้ไหม? SELECT * FROM foobar WHERE (SUBJECT ='STAT' and TERM ='111') or (SUBJECT ='STAT' and TERM ='222') or (SUBJECT ='ENGLISH' and TERM ='555') or (SUBJECT ='COMM' and TERM ='444') or (SUBJECT ='COMM' and TERM ='333') or (SUBJECT ='STAT' and TERM ='666') ...

2
การนำเข้าสกีมาไปยังพื้นที่ตารางใหม่หรือที่แตกต่างกัน
มีวิธีที่สะดวกในการนำเข้าสคีมาใน Oracle 11gR2 โดยใช้สเปซใหม่หรือที่แตกต่างจากที่มาของข้อมูลหรือไม่? ตัวอย่างเช่นฉันได้ส่งออก BLOG_DATA จาก OLDDB ซึ่งข้อมูลผู้ใช้ทั้งหมดถูกเก็บไว้ในพื้นที่ตาราง USERS บน NEWDB ฉันต้องการนำเข้า BLOG_DATA schema แต่เก็บวัตถุผู้ใช้ในพื้นที่ตาราง BLOG_DATA สร้างขึ้นเฉพาะสำหรับผู้ใช้นี้ ฉันสร้างผู้ใช้ BLOG_DATA สร้างพื้นที่ตาราง BLOG_DATA และตั้งเป็นพื้นที่เริ่มต้นสำหรับผู้ใช้นั้นและเพิ่มโควต้าไม่ จำกัด ที่เหมาะสม CREATE TABLESPACE blog_data DATAFILE SIZE 1G; CREATE USER blog_data IDENTIFIED BY secretpassword DEFAULT TABLESPACE blog_data QUOTA UNLIMITED ON blog_data; GRANT connect,resource TO blog_data สคีมาถูกส่งออกจาก OLDDB …

2
วิธีที่ง่ายที่สุดในการย้ายข้อมูลจาก Oracle ไปยัง SQL Server คืออะไร
หนึ่งในผลิตภัณฑ์ของเรารองรับทั้ง Oracle และ SQL Server เป็นแบ็กเอนด์ฐานข้อมูล เรามีลูกค้าที่ต้องการเปลี่ยนจากแบ็กเอนด์ Oracle เป็น Microsoft SQL Server ซึ่งไม่ใช่การเปลี่ยนแปลงตามปกติสำหรับเรา วิธีที่ง่ายที่สุดในการรับข้อมูลทั้งหมดจาก Oracle Schema ทั้งหมดไปยังฐานข้อมูล SQL Server คืออะไร สคีมามีเพียงตารางเก่าธรรมดาและไม่มีอะไรแฟนซี อาจมีหนึ่งหรือสองกระบวนงานที่เก็บไว้ซึ่งเราจะไม่มีปัญหาในการโยกย้ายด้วยมือ ฉันสามารถใช้ SQLDeveloper ของ Oracle เพื่อส่งออกข้อมูลตารางCREATEและINSERTคำสั่ง แต่สิ่งเหล่านี้จะไม่ตรงกับไวยากรณ์ที่ใช้บน SQL Server และฉันไม่ได้รอที่จะแก้ไขข้อผิดพลาดทางไวยากรณ์ด้วยตนเอง

2
มีประโยชน์ใดบ้างในการเรียงลำดับคอลัมน์เมื่อกำหนดดัชนี
ตัวอย่างเช่นถ้าฉันมีสองดัชนี: CREATE INDEX IDX_1 ON MY_TABLE_1 (ITEM, DATE, LOCATION) COMPUTE STATISTICS; CREATE INDEX IDX_2 ON MY_TABLE_1 (DATE, LOCATION, ITEM) COMPUTE STATISTICS; สิ่งนี้จะทำให้IDX_2ซ้ำซ้อนหรือไม่ ถ้าไม่ฉันจะกำหนดลำดับของการประกาศคอลัมน์ได้อย่างไร ฉันควรปรับดัชนีให้เหมาะกับข้อความค้นหาทั่วไปหรือไม่
13 oracle  index 

1
ประโยชน์ของแพ็คเกจเหนือขั้นตอนและฟังก์ชั่นแบบสแตนด์อโลนคืออะไร
กำลังมองหาคำตอบที่ยอมรับได้สำหรับคำถามที่ว่าทำไมแพ็กเกจควรเป็นที่ต้องการในฐานข้อมูล Oracle เกี่ยวกับขั้นตอนและฟังก์ชันแบบสแตนด์อะโลน
13 oracle  plsql 

5
คุณลักษณะใดของออราเคิลทำให้เป็นตัวเลือกที่น่าสนใจสำหรับโครงการขนาดเล็ก
เนื่องจากการจัดการสิทธิ์ใช้งานของออราเคิล[a] (และมีค่าใช้จ่ายน้อยกว่านี้) ฉันสงสัยอยู่เสมอว่าปัจจัยในการตัดสินใจเลือกใช้ Oracle บน PostgreSQL หรือ MySQL เป็นอย่างไร บริษัท ของฉันมักจะเลือกใช้ Oracle (XE มากที่สุด) แม้จะเป็นโครงการขนาดเล็กที่มี Windows Server เพียงกล่องเดียวที่รันฐานข้อมูลโดยไม่มีการจัดการฐานข้อมูลโดยเฉพาะ (โปรดทราบว่าขนาดเล็กไม่ได้หมายความว่าข้อมูลจะพอดีกับข้อ จำกัด ขนาดเล็กของ Oracle XE เสมอ) ฉันตั้งคำถามกับตัวเลือกนี้อยู่เสมอ แต่อย่างน้อยก็มีข้อดีที่เราได้สัมผัสกับผลิตภัณฑ์ฐานข้อมูลเดียว ยังได้รับโครงการใหม่ที่คุณต้องการ RDBMS แต่โครงการและขอบเขตของฐานข้อมูลนั้นค่อนข้างเล็กโดยขึ้นอยู่กับคุณลักษณะเฉพาะของ Oracle ที่ทำงานบนกล่องเซิร์ฟเวอร์ Windows แบบง่าย ๆ (โดยไม่ต้องมีการจัดการที่เฉพาะเจาะจงมากเกินไป) อีก RDBMS? บริบทเพิ่มเติม : การปรับใช้ฐานข้อมูลจำนวนมากของเราทำงานที่ไซต์ของลูกค้าใน a ให้เรียกมันว่า "โหมดการดูแลต่ำ" นั่นคือฐานข้อมูลถูกตั้งค่าครั้งเดียว มีการทดสอบเบื้องต้นเกี่ยวกับพฤติกรรมและประสิทธิภาพที่ถูกต้องในไซต์ หลังจากนี้ฐานข้อมูลก็จะเปิดอยู่ ไม่มีการบริหารปกติทำ เฉพาะในกรณีที่มีสิ่งผิดปกติช่างเทคนิค (ไม่ใช่ DBA …

2
ความปลอดภัยสำหรับ Application Developers ที่ทำงานกับ PL / SQL ใน Oracle
คุณจะจัดการกับการขาดสิทธิ์ระดับ Schema ใน Oracle ได้อย่างไร สถาปัตยกรรมความปลอดภัยของออราเคิลทำงานได้ดีสำหรับแอปพลิเคชันที่ต้องการเฉพาะสิทธิ์ระดับวัตถุและทำงานได้ดีสำหรับ DBA ที่ต้องการข้อ จำกัด เล็กน้อย อย่างไรก็ตามดูเหมือนว่าจะมีช่องโหว่ขนาดใหญ่ในสถาปัตยกรรมสำหรับโปรแกรมเมอร์ที่ทำการพัฒนาด้วยแอพพลิเคชั่นส่วนหน้าและ PL / SQL ในหลายสคีมา นี่คือตัวเลือกของฉันบางส่วนที่มีข้อเสีย: ทำให้แต่ละโปรแกรมเมอร์ทำการพัฒนาในสคีมาของตนเอง DBA จะให้สิทธิพิเศษระดับวัตถุแก่โปรแกรมเมอร์ที่ต้องการ การพัฒนาบรรจุภัณฑ์ใด ๆ จะต้องทำโดย DBA ข้อเสียที่สำคัญคือโปรแกรมเมอร์จะใช้ฐานข้อมูลเช่น bit bucket เพื่อลดความเสียหายของประสิทธิภาพของฐานข้อมูล ฉันต้องการโปรแกรมเมอร์ที่จะพัฒนาในฐานข้อมูล แต่วิธีนี้จะทำให้หมดกำลังใจอย่างมาก ให้ชื่อผู้ใช้ / รหัสผ่านของโปรแกรมเมอร์แก่ schema ที่ต้องการพัฒนามากกว่าสิบตัวอนุญาตให้สคีมาของแอปพลิเคชันเหล่านี้เพื่อสร้างโพรซีเดอร์ตารางและอื่น ๆ ข้อเสียของวิธีการนี้คือโปรแกรมเมอร์ต้องดูแลการเข้าสู่ระบบหลายครั้ง ไม่ค่อยเข้าสู่ระบบในฐานะตัวเอง การพัฒนาข้ามสคีก็ยากเช่นกัน ให้สิทธิการพิสูจน์ตัวตนพร็อกซีโปรแกรมเมอร์แก่แต่ละสคีมาที่ต้องพัฒนา สิ่งนี้ทำให้พวกเขาล็อกอินด้วยตนเองโดยไม่ต้องให้สิทธิพิเศษนอกเหนือจากสิทธิ์พร็อกซี ข้อเสียรวมถึงโปรแกรมเมอร์ที่ต้องรักษาการเชื่อมต่อแยกกันสำหรับแต่ละสคีมาที่พร็อกซีสำหรับการพัฒนาข้ามสคีมานั้นยุ่งยากกว่าเนื่องจากการเชื่อมต่อจะต้องมีการเปลี่ยนแปลงอยู่ตลอดเวลาและแพ็คเกจที่ใช้การเชื่อมโยงฐานข้อมูลสาธารณะ ให้สิทธิ์ DBA สำหรับโปรแกรมเมอร์แต่ละคน - ข้อเสียนี่คือความปลอดภัย ไม่มีโปรแกรมเมอร์สคีมาสามารถถูกเก็บออกจากสคีมาใด ๆ และโปรแกรมเมอร์ใด ๆ …

5
ไม่โหลดหน้าเว็บ Oracle 12c Express Enterprise Manager
สรุปปัญหา เมื่อเรียกดูหน้าเว็บ Oracle 12c EM Express หน้าจะหมดเวลาเมื่อใช้ URL เช่น: http (s): // hostname: 5500 / em http (s): //hostname.domain: 5500 / em เมื่อใช้ url ที่มีที่อยู่ IP หรือ localhost หน้าเว็บจะโหลด แต่ช้ามาก (มากถึง 5 นาที) http (s): // ที่อยู่ IP / em http (s): // localhost / em เมื่อใช้ชื่อโฮสต์บันทึกการฟังจะแสดงข้อผิดพลาด (หลายรายการ): 03-DEC-2015 11:25:33 …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.