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

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

6
วิธีกำจัด ORA-28002 ข้อความรหัสผ่านจะหมดอายุภายใน 6 วัน?
ฉันมีผู้ใช้รับ ORA-28002 โดยระบุว่ารหัสผ่านจะหมดอายุภายในหกวัน ฉันวิ่งต่อไปนี้: ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; แต่เมื่อฉันพยายามเข้าสู่ระบบในฐานะผู้ใช้ข้อความยังคงมีอยู่ ดำเนินการนี้: select * from dba_profiles where RESOURCE_NAME LIKE 'PASSWORD_LIFE_TIME'; แสดงให้เห็นว่าค่านั้นถูกเปลี่ยนเป็น UNLIMITED จริงๆ
18 oracle  security 

1
ผู้ฟัง Oracle 11g ล้มเหลวด้วยข้อผิดพลาด ORA-12514 และ ORA-12505
ฉันใช้งานอินสแตนซ์ของ Oracle 11g ในเครื่องของฉันและสามารถเชื่อมต่อกับอินสแตนซ์ในพื้นที่ได้โดยตรงผ่าน SqlPlus: c:\>sqlplus ace SQL*Plus: Release 11.2.0.2.0 Production on Mon Mar 11 11:50:20 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Beta SQL> select count(*) from my_table ; COUNT(*) ---------- 5297 แต่ฉันไม่สามารถเชื่อมต่อผ่านฟัง: c:\>sqlplus -L …

3
มีความแตกต่างในการดำเนินการระหว่างเงื่อนไข JOIN และเงื่อนไข WHERE หรือไม่
มีความแตกต่างของประสิทธิภาพระหว่างเคียวรีตัวอย่างทั้งสองหรือไม่ แบบสอบถาม 1: select count(*) from table1 a join table2 b on b.key_col=a.key_col where b.tag = 'Y' แบบสอบถาม 2; select count(*) from table1 a join table2 b on b.key_col=a.key_col and b.tag = 'Y' สังเกตเห็นความแตกต่างเพียงอย่างเดียวคือการวางเงื่อนไขเสริม; ครั้งแรกที่ใช้WHEREประโยคและครั้งที่สองจะเพิ่มเงื่อนไขในONข้อ เมื่อฉันเรียกใช้แบบสอบถามเหล่านี้ในระบบ Teradata ของฉันแผนการอธิบายนั้นเหมือนกันและขั้นตอนการเข้าร่วมแสดงเงื่อนไขเพิ่มเติมในแต่ละกรณี อย่างไรก็ตามในคำถาม SO นี้เกี่ยวกับ MySQL หนึ่งในคำตอบที่แนะนำว่าควรใช้รูปแบบที่สองเนื่องจากWHEREการประมวลผลเกิดขึ้นหลังจากทำการรวม มีกฎทั่วไปที่ต้องปฏิบัติตามเมื่อมีการเข้ารหัสคิวรีเช่นนี้ ฉันเดาว่ามันต้องขึ้นอยู่กับแพลตฟอร์มเพราะเห็นได้ชัดว่ามันไม่ได้สร้างความแตกต่างให้กับฐานข้อมูลของฉัน แต่บางทีนั่นอาจเป็นเพียงคุณสมบัติของ Teradata และถ้ามันเป็นขึ้นอยู่กับแพลตฟอร์มผมชอบมากที่จะได้รับการอ้างอิงเอกสารไม่กี่; ฉันไม่รู้ว่าจะมองหาอะไรจริงๆ

1
ทำสำเนาผู้ใช้ฐานข้อมูล Oracle
เราจะให้ผู้ตรวจสอบภายนอกมาตรวจสอบฐานข้อมูล Oracle ของเรา พวกเขาจะใช้เครื่องมือในการตรวจสอบและพวกเขาต้องการ ID ผู้ใช้ที่สามารถเชื่อมต่อกับฐานข้อมูลและรับข้อมูลจากมัน เรามีผู้ใช้ที่มีอยู่ในฐานข้อมูลสำหรับสิ่งนี้ อย่างไรก็ตามมันเป็นรหัสการผลิตและเราไม่สามารถล็อคเอาไว้ได้ เราต้องการโคลน / ทำซ้ำ ID นี้รวมถึงบทบาทและสิทธิ์ มีวิธีที่เราสามารถทำได้ใน Oracle หรือไม่?
17 oracle 

3
NVL หมายถึงอะไร
สิ่งที่NVLยืนหยัดเพื่อ? ฉันกำลังพูดถึงฟังก์ชั่นของ Oracle และ Informix (อาจจะเป็นบางอย่างเช่นกัน) ที่ใช้ในการกรองค่าที่ไม่ใช่ค่า NULL จากผลลัพธ์การสืบค้น (คล้ายกับCOALESCEในฐานข้อมูลอื่น)

1
คำศัพท์สำหรับตารางหนึ่งแถว?
มีคำใดคำหนึ่งที่ใช้อธิบายความสัมพันธ์กับความเป็นหัวใจของสิ่งใดสิ่งหนึ่งหรือไม่? ฉันกำลังคิดถึงตารางแบบแถวเดียว RDBMS "พิเศษ" เช่นDUAL(Oracle), SYSIBM.SYSDUMMY1(DB2, Derby) และRDB$DATABASE(Interbase, Firebird)

7
ดัชนีคอมโพสิต: คอลัมน์เลือกมากที่สุดก่อน?
ฉันกำลังอ่านเกี่ยวกับcomposite indexesและฉันสับสนเล็กน้อยเกี่ยวกับการสั่งซื้อ เอกสารนี้ (น้อยกว่าครึ่งทางเล็กน้อย) พูดว่า โดยทั่วไปคุณควรใส่คอลัมน์ที่คาดว่าจะใช้บ่อยที่สุดเป็นอันดับแรกในดัชนี อย่างไรก็ตามหลังจากนั้นไม่นานมันก็บอกว่า สร้างดัชนีคอมโพสิตวางคอลัมน์ที่เลือกมากที่สุดก่อน นั่นคือคอลัมน์ที่มีค่ามากที่สุด ออราเคิลยังกล่าวว่าที่นี่ในคำอื่น ๆ หากคีย์ทั้งหมดถูกใช้ใน WHERE clauses บ่อยเท่ากันดังนั้นการสั่งซื้อคีย์เหล่านี้จากการเลือกส่วนใหญ่ไปจนถึงการเลือกอย่างน้อยที่สุดในคำสั่ง CREATE INDEX จะช่วยปรับปรุงประสิทธิภาพการสืบค้นได้ดีที่สุด อย่างไรก็ตามฉันพบคำตอบ SOที่บอกว่าต่างออกไป มันบอกว่า จัดเรียงคอลัมน์ด้วยคอลัมน์ที่เลือกน้อยที่สุดก่อนและคอลัมน์ที่เลือกมากที่สุดเป็นลำดับสุดท้าย ในกรณีของการผูกเน็คไทกับคอลัมน์ซึ่งมีแนวโน้มที่จะใช้ด้วยตนเอง เอกสารแรกที่ฉันอ้างถึงบอกว่าคุณควรใช้งานบ่อยที่สุดในขณะที่คำตอบ SO บอกว่าควรจะใช้สำหรับการผูกไทเท่านั้น จากนั้นพวกเขายังแตกต่างกันในการสั่งซื้อ นี้เอกสารยังพูดถึงเกี่ยวกับskip scanningและบอกว่า การสแกนข้ามมีประโยชน์ถ้ามีค่าที่แตกต่างกันเล็กน้อยในคอลัมน์นำของดัชนีคอมโพสิตและค่าที่แตกต่างจำนวนมากในคีย์ที่ไม่เรียงลำดับชั้นของดัชนี บทความอื่นพูดว่า คอลัมน์คำนำหน้าควรเป็นการเลือกปฏิบัติมากที่สุดและใช้กันอย่างแพร่หลายในการสืบค้น ซึ่งฉันเชื่อว่าการเลือกปฏิบัติส่วนใหญ่จะมีความโดดเด่นที่สุด งานวิจัยทั้งหมดนี้ยังนำฉันไปสู่คำถามเดียวกัน คอลัมน์ที่เลือกมากที่สุดควรเป็นคอลัมน์แรกหรือสุดท้าย ควรเลือกคอลัมน์แรกที่มีการใช้งานมากที่สุดและมีเฉพาะคอลัมน์ที่เลือกมากที่สุดเท่านั้น? บทความเหล่านี้ดูเหมือนจะขัดแย้งกัน แต่เสนอตัวอย่างบางส่วน จากสิ่งที่ผมได้รวบรวมดูเหมือนว่าจะมีประสิทธิภาพมากขึ้นสำหรับผู้least selective columnที่จะเป็นครั้งแรกIndex Skip Scansในการสั่งซื้อถ้าคุณกำลังที่คาดการณ์ไว้ แต่ฉันไม่แน่ใจว่าถูกต้องหรือไม่

3
Oracle ไม่ได้ใช้ดัชนีที่ไม่ซ้ำสำหรับคีย์แบบยาว
ฉันมีตารางที่มีแถว 250K ในฐานข้อมูลการทดสอบของฉัน (มีการผลิตอยู่สองสามร้อยล้านล้านเราสามารถสังเกตปัญหาเดียวกันได้) ตารางมีตัวระบุสตริง nvarchar2 (50) ไม่ใช่ null โดยมีดัชนีที่ไม่ซ้ำกัน (ไม่ใช่ PK) ตัวระบุประกอบด้วยส่วนแรกที่มี 8 ค่าที่แตกต่างกันในฐานข้อมูลการทดสอบของฉัน (และประมาณหนึ่งพันครั้งในการผลิต) จากนั้นเครื่องหมาย @ และในที่สุดก็มีตัวเลขยาว 1 ถึง 6 หลัก ตัวอย่างเช่นอาจมี 50,000 แถวที่ขึ้นต้นด้วย 'ABCD_BGX1741F_2006_13_20110808.xml @' และตามด้วยตัวเลขที่แตกต่างกัน 50,000 ตัวเลข เมื่อฉันสอบถามแถวเดียวโดยใช้ตัวระบุความเป็นหัวใจนั้นประมาณเป็น 1 ค่าใช้จ่ายต่ำมากมันใช้งานได้ดี เมื่อฉันค้นหามากกว่าหนึ่งแถวที่มีตัวระบุหลายตัวในนิพจน์ IN หรือนิพจน์ OR การประมาณค่าของดัชนีนั้นผิดอย่างสมบูรณ์ดังนั้นจึงใช้การสแกนตารางแบบเต็ม หากฉันบังคับดัชนีด้วยคำใบ้มันเร็วมากการสแกนตารางแบบเต็มจะดำเนินการตามลำดับความสำคัญช้ากว่าจริง ๆ (และผลิตได้ช้ากว่ามาก) ดังนั้นจึงเป็นปัญหาของเครื่องมือเพิ่มประสิทธิภาพ เป็นการทดสอบฉันทำซ้ำตาราง (ใน schema + tablespace เดียวกัน) กับ …

1
เหตุใดเซสชันของ Oracle ยังคงมีชีวิตอยู่หลังจากสองสัปดาห์ที่ไม่ได้ใช้งาน
ฐานข้อมูล: Oracle 10g O / S: Windows Server 2003 64 บิต ฉันค้นหารายการเซสชันของ Oracle ที่สร้างขึ้นโดยเว็บแอปพลิเคชัน (กรองโดย program = w3wp.exe) select * from V$session where UPPER(program) LIKE '%W3%' order by logon_time ตาม Logon_Time เหตุใดจึงยังคงมีเซสชันอยู่ตั้งแต่ 31/07/2012 หรือ 01/08/2012 หรือเซสชันใด ๆ ก่อนวันนี้ (21/8/2555) ฉันได้กำหนดค่าใน sqlnet.ora: SQLNET.EXPIRE_TIME = 20 ดังนั้นหมายความว่า Oracle ทุก ๆ 20 นาทีกำลังตรวจสอบว่าการเชื่อมต่อยังคงทำงานอยู่หรือไม่ …

2
การทำงานหลายอย่างโดยใช้ WITH
มีวิธีการดำเนินการหลายการใช้WITHคำสั่งหรือไม่ สิ่งที่ต้องการ WITH T AS ( SELECT * FROM Tbl ) BEGIN OPEN P_OUTCURSOR FOR SELECT * FROM T; SELECT COUNT(*) INTO P_OUTCOUNT FROM T; END; ฉันต้องการเลือกข้อมูลและจำนวนของมัน ...
16 oracle  select  cte 

3
วิธีแยกความแตกต่างระหว่าง SQL และ PL / SQL
ฉันรู้ว่าคำถามอาจฟังดูโง่เกินไป แต่ฉันไม่เคยเข้าใจส่วนนี้ SQL * Plus ทำงานได้กับทั้ง SQL และ PL / SQL ฉันจะรู้ได้อย่างไรว่าบางรหัสเป็น SQL หรือ PL / SQL หากรหัสของฉันมี for for loop จะไม่ใช้ SQL อีกต่อไปหรือไม่ PL / SQL เป็นส่วนเสริมสำหรับ SQL ที่จะมีลูปเงื่อนไข ฯลฯ จากนั้นรหัส SQL ใด ๆ คือรหัส PL / SQL เริ่มต้น? ไม่เป็นอย่างนั้นเหรอ? มีการแบ่งเขตระหว่าง SQL และ PL / SQL หรือไม่ ตัวอย่างที่สองของการแบ่งแยก b …

4
เครื่องหมายอัฒภาคในตอนท้ายของคำสั่ง SQL * Plus มีความสำคัญอย่างไร
คำสั่งบางอย่างเช่นสร้างตาราง, แทรกลงใน ฯลฯ ใช้เซมิโคลอนที่ท้าย: CREATE TABLE employees_demo ( employee_id NUMBER(6) , first_name VARCHAR2(20) , last_name VARCHAR2(25) CONSTRAINT emp_last_name_nn_demo NOT NULL ) ; ในขณะที่คนอื่นชอบ set echo on connect system/manager ผ่านไปโดยไม่มีเครื่องหมายอัฒภาคเช่นกัน อะไรคือเหตุผลเบื้องหลังสิ่งนี้ ฉันจะตัดสินใจเองได้อย่างไรว่าจะวางเซมิโคลอนไว้ที่ใด?

2
กรณีการเข้าร่วม Oracle ภายนอกที่แปลกประหลาด
ฉันได้เห็นสิ่งต่อไปนี้ในแบบสอบถามที่ควรจะถูกย้ายจาก Oracle outer join syntax ไปเป็น SQL standard outer join syntax: SELECT ... FROM A, B, C, D, E WHERE A.A_ID = B.A_ID AND B.B_ID = C.A_ID(+) AND B.B_KEY = C.B_KEY(+) AND C.C_ID = D.C_ID(+) AND B.A_ID = E.A_ID(+) AND B.B_KEY = E.B_KEY(+) AND 'CONSTANT' = C.X_ID(+) ตอนนี้การแปลไวยากรณ์การรวมภายนอกนั้นเป็นกระบวนการทางกล แต่บรรทัดสุดท้ายนั่นทำให้ฉันงุนงง มันหมายความว่าอะไร? …
16 oracle  join  syntax 

6
การกำหนดค่า RAID ที่แนะนำสำหรับฐานข้อมูล Oracle คืออะไร
RAID (อาร์เรย์สำรองของดิสก์ราคาถูก) มาพร้อมกับการกำหนดค่าต่าง ๆ (RAID-0, RAID-1 ... ) อะไรคือการกำหนดค่า RAID ที่แนะนำที่ฉันควรตั้งค่าและใช้เมื่อติดตั้งฐานข้อมูล Oracle ฐานข้อมูลส่วนใหญ่จะใช้เป็นคลังข้อมูล

3
วิธีรับรายการบัญชีที่ถูกล็อค / ตรวจสอบบัญชีนั้นถูกล็อคอย่างไร
ฉันสามารถใช้คำสั่งต่อไปนี้เพื่อปลดล็อคบัญชี: ALTER USER username ACCOUNT UNLOCK แต่ฉันสามารถใช้คำสั่งใดเพื่อยืนยันว่าบัญชีถูกล็อคอยู่ในขณะนี้?
16 oracle 

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