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

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

2
การกู้คืนพื้นที่เชิงตรรกะจาก tablespace
ฉันมีพื้นที่ตารางที่เรียกว่า DATA และเป็นการตั้งค่าโดยอัตโนมัติขยายเป็นเท็จ tablespace นี้มีสองดาต้าไทล์และตั้งค่าดังนั้นจึงใช้พื้นที่ฟิสิคัล 350 GB สัปดาห์ที่ผ่านมาฉันได้สอบถาม user_tablespaces และ dba_data_files และสังเกตว่ามันมีพื้นที่โลจิคัลว่าง 20% ฉันดำเนินการตามขั้นตอนด้วยการล้างข้อมูลและลบระเบียนจำนวนมากจากตารางใน tablespace นี้ เราคาดว่าจะเห็นพื้นที่ว่างเพิ่มขึ้นอย่างมาก น่าเสียดายที่เมื่อฉันสอบถามความคิดเห็นฉันสังเกตเห็นว่ามีพื้นที่ว่างตอนนี้ 20.5% อาจเป็นเพราะการกระจายตัวของข้อมูลหรือไม่ เราสามารถ "จัดเรียงข้อมูล" พื้นที่ตารางอย่างใดและกู้คืนพื้นที่ที่สูญหายหรือไม่ หรือเราจำเป็นต้องสร้าง tablespace ตั้งแต่เริ่มต้นหรือไม่

3
sequence.nextval เป็นอย่างไรใน Oracle
ฉันมีลำดับ Oracle ที่กำหนดดังนี้: CREATE SEQUENCE "DALLAS"."X_SEQ" MINVALUE 0 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 0 NOCACHE NOORDER NOCYCLE ; มันถูกใช้ในขั้นตอนการจัดเก็บเพื่อแทรกบันทึก: PROCEDURE Insert_Record (p_name IN VARCHAR2, p_userid IN INTEGER, cur_out OUT TYPES_PKG.RefCursor) IS v_id NUMBER := 0; BEGIN -- Get id value from sequence SELECT x_seq.nextval INTO v_id FROM dual; …
11 oracle  sequence 

2
ฉันจะค้นหาวัตถุที่ไม่มีอยู่ในตารางวัตถุได้อย่างไร
cot_ntn_pi_vฉันมีวัตถุที่เรียกว่า ฉันบอกว่านี่เป็นคำพ้อง จะไม่ปรากฏในตาราง all_synonyms ดูเหมือนว่าจะเป็นมุมมองหรือตาราง แต่ฉันไม่พบมันในตารางวัตถุทั้งหมด ฉันสามารถเลือกจากมันได้ แต่ฉันไม่สามารถวางได้เพราะมัน 'ไม่มีอยู่' และฉันไม่สามารถสร้างตารางใหม่ที่มีชื่อเดียวกันกับชื่อ 'วัตถุอื่นใช้แล้ว' ฉันจะโมโหหรือทำอะไรโง่ ๆ จริง ๆ ?

1
จำกัด ระดับของการขนาน (DOP) ที่มีให้กับแบบสอบถาม
ใน Oracle Exadata (11gR2) เรามีฐานข้อมูลที่ค่อนข้างอ้วน cpu_count คือ 24 parallel_server_instances คือ 2 parallel_threads_per_cpu คือ 2 เราสังเกตเห็นว่าจากการสังเกตใน Oracle Enterprise Manager (OEM) ประสิทธิภาพนั้นแย่มากเนื่องจากมีการดำเนินการแบบสอบถามอย่างจริงจัง เพื่อแก้ไขปัญหานี้ตารางทั้งหมดมุมมองที่เป็นรูปธรรมและดัชนีถูกเปลี่ยนเพื่อใช้ประโยชน์จากความเท่าเทียม เช่น: ALTER TABLE SOME_TABLE PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT); ระบบมีการเปลี่ยนแปลงเพื่อเปิด parallelisation: ALTER SYSTEM SET PARALLEL_DEGREE_POLICY = 'AUTO'; สิ่งนี้ส่งผลให้มีประสิทธิภาพที่ดีขึ้น แต่บางครั้งเราสังเกตเห็นใน OEM ว่าแบบสอบถามเดียวจะผูก DOP จาก 96 (ทรัพยากรที่มีอยู่ทั้งหมด) สิ่งนี้ทำให้เคียวรีลำดับต่อมาถูกลดระดับเป็น DOP เป็น 1 …

1
ข้อผิดพลาด PLS-00306: วิธีการหาอาร์กิวเมนต์ที่ผิด?
PLS-00306: หมายเลขหรือประเภทของอาร์กิวเมนต์ที่โทรหา 'string' ผิด สาเหตุ: ข้อผิดพลาดนี้เกิดขึ้นเมื่อการเรียกโปรแกรมย่อยที่มีชื่อไม่สามารถจับคู่กับการประกาศใด ๆ สำหรับชื่อโปรแกรมย่อยนั้น ชื่อโปรแกรมย่อยอาจสะกดผิดพารามิเตอร์อาจมีประเภทข้อมูลที่ไม่ถูกต้องการประกาศอาจผิดพลาดหรือการประกาศอาจวางไว้อย่างไม่ถูกต้องในโครงสร้างบล็อก ตัวอย่างเช่นข้อผิดพลาดนี้เกิดขึ้นหากฟังก์ชั่นสแควร์รูทในตัว SQRT ถูกเรียกด้วยชื่อที่สะกดผิดหรือด้วยพารามิเตอร์ของประเภทข้อมูลที่ไม่ถูกต้อง การดำเนินการ: ตรวจสอบการสะกดคำและการประกาศชื่อโปรแกรมย่อย นอกจากนี้ยังยืนยันว่าการโทรนั้นถูกต้องพารามิเตอร์นั้นเป็นประเภทข้อมูลที่ถูกต้องและหากไม่ใช่ฟังก์ชันในตัวการประกาศจะถูกวางไว้อย่างถูกต้องในโครงสร้างบล็อก ฉันจะระบุข้อโต้แย้งที่ผิดได้อย่างรวดเร็วได้อย่างไร ฉันมีขั้นตอนการจัดเก็บพร้อมพารามิเตอร์หลายสิบตัว มีวิธีง่าย ๆ ในการตรวจสอบความแตกต่างระหว่างขั้นตอนที่ใช้และขั้นตอนที่กำหนดหรือไม่ ฉันไม่ต้องการตรวจสอบทีละบรรทัด ..

1
ฉันจะประมาณขนาดของตารางภายใน Schema (Oracle) ได้อย่างไร
ฉันพยายามประเมินขนาดตารางภายในสคีมาของฉัน (เป็น MB) นี่คือสิ่งที่ฉันมี: SELECT table_name, owner, last_analyzed FROM all_tables ฉันค่อนข้างใหม่กับ SQL ดังนั้นฉันจึงไม่รู้ว่าจะทำสิ่งนี้อย่างไร ขอขอบคุณ.
11 oracle 

4
ปัญหาการนำเข้าของ Oracle เกิดจากชุดอักขระที่แตกต่างกัน
ฉันกำลังพยายามนำเข้าการส่งออกของ Oracle 11 ไปยัง Oracle 11 XE ฉันได้รับข้อความต่อไปนี้: นำเข้าใน XE fehlerhaft การนำเข้าทำได้ในชุดอักขระ WE8MSWIN1252 และชุดอักขระ AL16UTF16 NCHAR เซิร์ฟเวอร์นำเข้าใช้ชุดอักขระ AL32UTF8 (การแปลงชุดอักขระที่เป็นไปได้) ความคิดใด ๆ ฉันจะนำเข้าดัมพ์นี้ไปยัง Oracle 11 XE ได้อย่างไร แก้ไข: รับตาราง CREATE TABLE BDATA.Artikel( Key VARCHAR2(3) NOT NULL, Name VARCHAR2(60) NOT NULL, Abkuerzung VARCHAR2(5) NOT NULL ); ฉันได้รับข้อผิดพลาดเช่นนี้ IMP-00019: row rejected due to …
11 oracle  import 

2
การเคลื่อนย้ายข้อมูลขนาดใหญ่
ฉันต้องการย้ายหลายพันล้านแถวจาก schema1.table1 ไปยัง schema2.table2 ใหม่โดยที่ table2 เป็น refactored หนึ่งจาก table1 ดังนั้นโครงสร้างตารางของพวกเขาจึงแตกต่างกัน ทั้ง table1 และ table2 ถูกแบ่งพาร์ติชั่น แต่ table2 ว่างเปล่า สกีมาทั้งสองนี้อยู่ในฐานข้อมูล Oracle เดียวกัน ประสิทธิภาพของวิธีที่มีประสิทธิภาพในการโยกย้ายข้อมูลนี้ คุณต้องการที่จะดำเนินการเฉพาะที่ส่วนท้ายสุดหรือเลือกที่จะกระทำที่เพิ่มขึ้น? นั่นคือสมมติว่าการย้ายข้อมูลล้มเหลวหลังจากทำ 99% ของงานซึ่งใช้เวลาไม่กี่ชั่วโมง ตอนนี้คุณย้อนกลับหรือไม่ หากคุณเพิ่มความมุ่งมั่นคุณจะจัดการกับความล้มเหลวได้อย่างไร
11 oracle 

4
จะค้นหาพื้นที่จริงที่ดัชนีใช้อยู่บนตารางใน Oracle ได้อย่างไร
ฉันต้องการค้นหาพื้นที่จริงที่ถูกใช้โดยดัชนีบนโต๊ะใน oracle 10g ฉันไม่ต้องการรวมพื้นที่ที่สงวนไว้โดย oracle สำหรับการใช้งานในอนาคต (ไม่ควรพิจารณาค่าใช้จ่ายโดย oracle) ฉันต้องการไบต์ที่ใช้ไม่ใช่ไบต์ที่ปันส่วน คุณช่วยฉันก้าวไปข้างหน้าได้ไหม? นอกจากนี้ยังมีวิธีการหาขนาดที่แท้จริงของเขตข้อมูลยาวในตาราง PS: vsize () และ dbms_lob.getlength () ไม่ทำงาน

2
วิธีการเชื่อมต่อกับฐานข้อมูลอื่นโดยใช้ขั้นตอนการจัดเก็บ?
ฉันต้องการรับข้อมูลบางอย่างจากฐานข้อมูลภายนอกและทำการคำนวณบางอย่างกับฐานข้อมูลอื่นเป็นไปได้หรือไม่ที่จะเชื่อมต่อกับฐานข้อมูลภายนอกจากกระบวนงานที่เก็บไว้? ขอบคุณเพื่อน. PS ฉันใช้ Oracle และฐานข้อมูลทั้งสองอยู่ในเซิร์ฟเวอร์เดียวกัน

2
ทำไมเราไม่สามารถเขียนคำสั่ง ddl ลงในบล็อก PL / SQL ได้โดยตรง
ทำไมเราไม่สามารถเขียนคำสั่ง ddl ได้โดยตรงใน PL / SQL block เช่นเมื่อฉันเขียน CREATE OR REPLACE PROCEDURE test IS BEGIN truncate table table_name; // error END test; / แต่, CREATE OR REPLACE PROCEDURE test IS BEGIN execute immediate 'truncate table table_name'; // works fine END test; / ทำไมคนที่สองถึงทำสำเร็จ
11 oracle  plsql  ddl 

1
เวลาดำเนินการสืบค้นใน Oracle SQL Developer
ฉันรู้ว่าฉันสามารถใช้set timing onเพื่อดูว่าต้องใช้เวลานานเท่าใดในการเรียกใช้คิวรีหลังจากการดำเนินการเสร็จสิ้น แต่เป็นไปได้ไหมที่จะเห็นระยะเวลาดำเนินการปัจจุบันใน Oracle SQL Developer ในขณะที่แบบสอบถามยังคงทำงานอยู่ SQL Server Management Studio และ Query Analyzer มีคุณสมบัติดังต่อไปนี้:
11 oracle  tools 

3
สภาพแวดล้อมการจัดเตรียมฐานข้อมูลสำหรับบุคลากรที่ไม่ใช่ด้านไอที
ฉันกำลังเสนอสภาพแวดล้อมการจัดเตรียมฐานข้อมูลให้แผนกไอทีของฉัน แนวคิดก็คือบุคคลที่ไม่ใช่ด้านไอทีอย่างฉัน (นักวิเคราะห์ข้อมูลสาธารณะ) จะมีที่สำหรับทดสอบวิธีแก้ปัญหาแล้วนำไปใช้ในสภาพแวดล้อมจริงหรือขอให้ฝ่ายไอทีนำไปใช้หากจำเป็น มีเหตุผล / สถานการณ์สองสามข้อที่สภาพแวดล้อมนี้จะเป็นประโยชน์: ฉันมีสิทธิ์ฐานข้อมูลบางขั้นพื้นฐานในสภาพแวดล้อมฐานข้อมูลอยู่ของเรา ( create table, create viewฯลฯ ) ฉันจะทำให้การเปลี่ยนแปลงสคีมาประมาณสัปดาห์ละครั้ง แต่ดูเหมือนว่าบ้าสำหรับผมที่จะทดสอบและดำเนินการเปลี่ยนแปลงเหล่านี้ในสภาพแวดล้อมที่อยู่ มีการอ้างอิงที่นับไม่ถ้วนในฐานข้อมูลดังนั้นหากมีสิ่งใดผิดพลาดอาจเป็นหายนะ ฉันค่อนข้างจะทดสอบสิ่งต่าง ๆ ล่วงหน้าในสภาพแวดล้อมที่แยกต่างหาก ฉันไม่มีสิทธิ์พิเศษขั้นสูงบางอย่างเช่นcreate triggerหรือcreate functionในฐานข้อมูลสด นี่เป็นเรื่องปกติ แต่ฉันมีปัญหาเล็กน้อยที่สามารถแก้ไขได้โดยทริกเกอร์และ / หรือฟังก์ชั่น ฉันวางแผนที่จะเสนอว่าฉันจะได้รับอนุญาตเหล่านี้ในสภาพแวดล้อมการจัดเตรียมเพื่อให้ฉันสามารถพัฒนาและทดสอบความคิดบางอย่างและถ้าพวกเขาทำงานให้เสนอว่าไอทีจะนำไปใช้ในสภาพแวดล้อมจริง โดยทั่วไปแผนกไอทีของฉันไม่มีเวลาหรือทรัพยากรในการพัฒนาโซลูชันสำหรับฉัน มันง่ายจริงๆ ดังนั้นถ้าฉันสามารถทำงานได้ด้วยตัวเองปัญหาของฉันก็มีแนวโน้มที่จะได้รับการแก้ไข 'สภาพแวดล้อมการจัดเตรียมสำหรับบุคลากรที่ไม่ใช่ด้านไอที' ดูเหมือนจะเป็นวิธีที่ดีพอสำหรับฉัน แต่โดยความจริงแล้วฉันเพิ่งคิดขึ้นมา ฉันไม่มีความคิดว่ามันจะเกิดขึ้นได้อย่างไรในโลกไอที / ฐานข้อมูล มีการฝึกฝนด้านไอที / ฐานข้อมูลใด ๆ ที่เหมาะสมกับสถานการณ์นี้หรือไม่? (ฉันอยู่ในแนวทางที่ถูกต้องเมื่อเสนอสภาพแวดล้อมการจัดเตรียมฐานข้อมูลสำหรับบุคลากรที่ไม่ใช่ด้านไอทีหรือไม่)

6
Oracle 12c สร้างผู้ใช้
ฉันมีปัญหาในการสร้างผู้ใช้ในระบบฐานข้อมูลองค์กร Oracle ไม่สามารถสร้างผู้ใช้โดยใช้คำสั่งเช่น create user name identified by password; เนื่องจากข้อยกเว้น: ORA-65096: ชื่อผู้ใช้หรือบทบาททั่วไปที่ไม่ถูกต้อง ดังนั้นฉันจึงพบวิธีแก้ปัญหาบน Google: alter session set container=PDBORCL; และหลังจากนั้น - เป็นงาน สร้างผู้ใช้แล้ว แต่ฉันไม่สามารถเข้าสู่บัญชีนี้ได้ เกิดอะไรขึ้น? ฉันเพิ่มสิทธิ์ทั้งหมดให้กับบัญชีนี้ (สร้างเซสชันด้วย) ฉันมีข้อผิดพลาด: ORA-01017: ชื่อผู้ใช้ / รหัสผ่านไม่ถูกต้อง; ปฏิเสธการเข้าสู่ระบบ เกิดอะไรขึ้น?

1
รับ“ ORA-00942: ไม่มีตารางหรือมุมมอง” ในขณะที่มีตารางอยู่
ฉันค่อนข้างใหม่กับฐานข้อมูล Oracle ผมได้ติดตั้งบนOracle Database 11g R2 Oracle Linux 6ฉันสร้างฐานข้อมูลใหม่ด้วยdbcaและเชื่อมต่อกับฐานข้อมูลโดยใช้: $ sqlplus "/ as sysdba" ฉันสร้างตารางสำเร็จและแทรกข้อมูลบางส่วนแล้วทำการเลือกบางอย่าง: SQL> CREATE TABLE Instructors ( tid NUMBER(7) PRIMARY KEY, fname VARCHAR2(32), lname VARCHAR2(32), tel NUMBER(16), adrs VARCHAR2(128) ); Table created. SQL> INSERT INTO Instructors (tid, fname, lname, tel, adrs) VALUES (8431001, 'John', 'Smith', 654321, 'London'); …

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