2015-09-21 2 views
2

Какова практическая разница между .pls и .sql файлом в oracle. Каковы ограничения на разные типы операторов в обоих?Практическое различие между .pls и .sql файлом в oracle

Мне дается проект в unix (скрипт korn), который использует оба файла .sql и .pls в разных местах. Попытка выяснить, какой из них следует использовать где.

+0

Я помню дни, когда различные файлы были разбросаны по коду внутри - не подкреплены, не поддаются проверке без его выполнения. Вы должны сделать себе одолжение и перенести весь этот код на упакованные процедуры в базе данных, используя DBMS_Scheduler для любых требований к планированию. –

ответ

4

Суффикс файла в значительной степени является предметом соглашения. Мы можем использовать их для предоставления полезных метаданных другим разработчикам.

So .pls указывает (мы надеемся), что файл является PL/SQL-скриптом, создающим PL/SQL-пакет или хранимую процедуру. В других магазинах мы можем увидеть .pks и .pkb, чтобы указать скрипт спецификации пакета и сценарий тела пакета соответственно. Файл с расширением .tab или .tbl указывает DDL для создания таблицы. Поскольку это всего лишь конвенция, она требует дисциплины (или обзоров кода), чтобы убедиться, что мы остаемся последовательными.

Единственное отличие: .sql. Хотя соглашение состоит в том, что он представляет собой некоторый SQL (запрос или, возможно, DML или DDL), он имеет специальное свойство в SQL * Plus. Если у нас есть сценарий под названием whatever.sql мы можем назвать это как это в SQL * Plus ...

SQL> @whatever 

... а если скрипт имеет любое другое расширение, мы должны включать в себя расширение в вызове ...

SQL> @whatever.pls 

других IDES или другие клиенты (например скрипты) может использовать расширение файлов в качестве фильтрующих механизмов или для применения подсветки синтаксиса, но их правила всегда должны контролироваться предпочтениями.

«Каковы ограничения на разные типы операторов в обоих?»

Подводя итог, нет никаких ограничений. В некоторых местах, где я работал, использовались только файлы .sql, у других был сложный зверинец сценариев: .tbl, .idx, .vw и т. Д. Социопаты могут использовать только .txt для всех своих файлов: в базе данных все равно. При условии, что это синтаксис Oracle, код будет работать.

+0

Итак, в sqlplus, независимо от расширения, мы можем иметь инструкции pl/sql, такие как декларация, курсоры и т. Д. правильно? или, другими словами, даже если я изменю .pls на .sql, он все равно будет работать? – xGen

+0

Будет работать. Вероятно, вы не должны изменять расширение. Было бы лучше спросить своих сотрудников, какие конвенции они используют и придерживаться этих. – APC

+0

Стоит отметить, что расширение «.sql» всегда будет использоваться в случае, когда у вас есть сценарии с расширением .sql и без расширения (эти сценарии никогда не должны происходить). SQL>! cat full выберите 'full' from dual; SQL>! cat full.sql выберите 'sql' from dual; SQL> @full 'SQ --- sql –

Смежные вопросы