مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۴ دقیقه·۶ ماه پیش

بررسی برخی از امکانات جدید ابزار SQLPLUS در ORACLE 23ai


مقدمه :

همزمان با ارائه نسخه ۲۳ai ، ابزار sqlplus ارتقا پیدا کرده و به قابلیت های آن اضافه شده است. در این مقاله چند قابلیت جدید مورد بررسی قرار می گیرد.

دستور SET ERRORDETAILS :

SQLPLUS در نسخه   ۲۳ai یک URL راهنما برای بسیاری از پیام های خطا نمایش می دهد. این URL ها شرح کاملی از پیام خطا و همچنین اقدامات احتمالی را ارائه می دهند. مقدار اطلاعات موجود برای هر پیام خطا متفاوت است.

SQL> select * from banana;

select * from banana

*

ERROR at line 1:

ORA-00942: table or view does not exist

Help: https://docs.oracle.com/error-help/db/ora-00942/

SQL>

نمایش URL توسط تنظیمات ERRORDETAILS کنترل می شود. مقادیر مجاز OFF، ON و VERBOSE هستند که ON پیش فرض است.

SQL> show errordetails

errordetails ON

SQL>

ما URL را با استفاده از تنظیمات OFF حذف می کنیم.

SQL> set errordetails off

SQL> select * from banana;

select * from banana

*

ERROR at line 1:

ORA-00942: table or view does not exist

SQL>

تنظیمات VERBOSE جزئیات زیادی را در مورد خطا نمایش می دهد.

SQL> set errordetails verbose

SQL> select * from banana;

select * from banana

*

ERROR at line 1:

ORA-00942: table or view does not exist

Help: https://docs.oracle.com/error-help/db/ora-00942/

Cause:     The specified table or view did not exist, or a synonym

pointed to a table or view that did not exist.

To find existing user tables and views, query the

ALL_TABLES and ALL_VIEWS data dictionary views. Certain

privileges may be required to access the table. If an

application returned this message, then the table that the

application tried to access did not exist in the database, or

the application did not have access to it.

Action:    Check each of the following:

– The spelling of the table or view name is correct.

– The referenced table or view name does exist.

– The synonym points to an existing table or view.

If the table or view does exist, ensure that the correct access

privileges are granted to the database user requiring access

to the table. Otherwise, create the table.

Also, if you are attempting to access a table or view in another

schema, make sure that the correct schema is referenced and that

access to the object is granted.

Params: 1) object_name: The table or view name specified as

SCHEMA.OBJECT_NAME, if one is provided.

Otherwise, it is blank.

SQL>

ارتباط با ما

جهت دریافت خدمات مشاوره، آموزش و نگهداری پایگاه داده اوراکل با ما در ارتباط باشد

از متغیر محیطی ORA_SUPPRESS_ERROR_URL می توان برای تنظیم مقدار ERRORDETAILS روی ON یا OFF استفاده کرد.

export ORA_SUPPRESS_ERROR_URL=TRUE

SQL> show errordetails

errordetails OFF

SQL>

export ORA_SUPPRESS_ERROR_URL=FALSE

SQL> show errordetails

errordetails ON

SQL>

توانایی خاموش کردن URL یک راه حل برای مشکلات  backwards compatibilityاست.

دستور PING:

فرمان PING اتصال شبکه را به روشی مشابه ابزار tnsping آزمایش می کند.

بدون هیچ آرگومان اضافی، اتصال فعلی را آزمایش می کند.

SQL> ping

Ok (0.204 msec)

SQL>

ارسال شناسه اتصال به آن اجازه می دهد تا آن اتصال را با استفاده از همان شنونده مورد استفاده توسط اتصال فعلی آزمایش کند.

SQL> ping free

Network service name mapping file: /opt/oracle/product/23ai/dbhomeFree/network/admin/tnsnames.ora

Attempting to contact: (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = FREE)))

Ok (38.743 msec)

SQL>

ارسال نام  LISTENERو شناسه اتصال به آن اجازه می دهد تا با استفاده از یک LISTENER جایگزین آزمایش کند، با این فرض که بیش از یک LISTENER در سرور اجرا می شود.

SQL> ping listener free

Network service name mapping file: /opt/oracle/product/23ai/dbhomeFree/network/admin/tnsnames.ora

Attempting to contact: (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = FREE)))

Ok (5.992 msec)

SQL>

دستور OERR :

دستور OERR علت و اقدام پیغام خطای مشخص شده را نمایش می دهد. با یا بدون جداکننده “-” کار می کند. OERR در SQLcl نیز وجود دارد.

SQL> oerr ORA 48003

Message: “out of process memory”

Help: https://docs.oracle.com/error-help/db/ora-48003/

Document: YES

Cause:  Operating system memory was exhausted or a per-process limit

on private memory usage was reached. The database has an internal

limit of 32 GB per Oracle process.

Action: Check the use of memory by other Oracle instances and other

applications. Exceeding 32 GB in a single process may indicate a

memory leak. Consider reducing the size of shared memory to allow

more room for private memory.

Comment: The ORA facility mapping for this error is ORA-04030.

SQL>

SQL> oerr ORA-48003

Message: “out of process memory”

Help: https://docs.oracle.com/error-help/db/ora-48003/

Document: YES

Cause:  Operating system memory was exhausted or a per-process limit

on private memory usage was reached. The database has an internal

limit of 32 GB per Oracle process.

Action: Check the use of memory by other Oracle instances and other

applications. Exceeding 32 GB in a single process may indicate a

memory leak. Consider reducing the size of shared memory to allow

more room for private memory.

Comment: The ORA facility mapping for this error is ORA-04030.

دستور HELP برای نمایش اطلاعات مشابه اصلاح شده است. همه تغییرات زیر کار می کنند.

help 48003

help ora 48003

help ora-48003

پشتیبانی از BOOLEAN در SQLPLUS :

نسخه  جدید SQLPLUS در پایگاه داد Oracle23ai از داده های BOOLEAN پشتیبانی می کند.

SQL> select true, false from dual;

TRUE        FALSE

———– ———–

TRUE        FALSE

SQL>

مقالات مرتبط:

oracle 23aiخدمات اوراکلمشاوره اوراکلآموزش اوراکلمسعود سلطانی راد
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید