powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / T-sql vs PL/SQL (разница в синтаксисе)
16 сообщений из 16, страница 1 из 1
T-sql vs PL/SQL (разница в синтаксисе)
    #39497440
Takayavot1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Подскажите, пож-та,
Предвидится потребность писать большое кол-во запросов (на Select) в СУБД Oracle.
До этого работала с MS SQL
Есть ли ощутимая разница в синтаксисе?
Интересуют стандартные операции из серии объединения таблиц, группировки, подзапросов.
Функции, наверное, разные, да?
Спасибо!
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497444
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1Есть ли ощутимая разница в синтаксисе?

PL/SQL это не про select. И таки да, между T-SQL и PL/SQL вообще нет ничего общего.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497528
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1,

Как раз select-ы наиболее похожие, вот ХП MSSQL и пакеты Oracle отличаются значительно.
Первым делом освойте функцию to_date Oracle.
С временными таблицами все иначе... геморройнее.
Отлаживать скрипт хуже, переменные есть только в пакетах.
Приспособил конструкцию with
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
 with
 --       параметры выборки (переменные T-SQL)
prm as (select  to_date('01.01.2017','dd.mm.yyyy') as rep_date  
            ......
             from dual)

,wl as (SELECT *     

FROM       wb, meth
                ,prm
where   1=1
    ...
         and wb.start_time < rep_date    and (wb.end_time >= rep_date or wb.end_time is null)  
         and meth.start_time < rep_date   and  (meth.end_time >= rep_date or meth.end_time is null) 
)

select * from wl


Первый SELECT задает параметры, которые я использую в следующих SELECT-ах, как переменные в T_SQL (rep_date),
а следующие SELECT-ы могут сыграть роль временных таблиц.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497616
Takayavot1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovPL/SQL это не про select. И таки да, между T-SQL и PL/SQL вообще нет ничего общего.


может неправильно сформулировала вопрос.
Меня интересуют обычные запросы из базы данных, в которых используются операторы Select, From, Where, Join (Left, Right), On, Group by, Having, Order By. Синтаксис для такого рода запросов не изменится?

И вложенные подзапросы типа:

Select a,b,c, price from BD
Where price =
(Select min(price) from BD)

или

Select BD2.price
from
(Select a,b,c,price from BD
Where a=30) as BD2
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497621
Takayavot1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А также наиболее часто используемые функции типа
Between, in, IsNull, String, Datepart, Getdate, и прочие
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497636
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На этом уровне отличия невелики.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39497894
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1,

все SQL-сервера поддерживают некий стандарт (кажется, сейчас это Core называется). Если используете синтаксис и операторы из него, то можете не беспокоится. А вот хранимки и триггеры - они на процедурном языке, который разный, дан на откуп вендорам.
Правда, можете и на селекте попасть. Если используете какие-то специфические майкрософтовские функции. Да и не только в функциях и операторах дело. Можно и в синтаксисе нарваться на проблему.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39500901
Фотография Сид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1Доброго времени суток!
Подскажите, пож-та,
Предвидится потребность писать большое кол-во запросов (на Select) в СУБД Oracle.
До этого работала с MS SQL
Есть ли ощутимая разница в синтаксисе?
Интересуют стандартные операции из серии объединения таблиц, группировки, подзапросов.
Функции, наверное, разные, да?
Спасибо!
Конкатенация строк не +, а || - реально достанет в процессе
Пустая строка - это NULL! А ещё NULL можно присоединить к строке, и это не станет NULL
ISNULL - это NVL
Давно не следил на развитием оракла, но вроде так и не сделали оператор APPLY
С датами отдельная песня, сказали выше
Про временные таблицы тоже присоединяюсь, придётся помучиться
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503009
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1А также наиболее часто используемые функции типа
Between, in, IsNull, String, Datepart, Getdate, и прочие
BETWEEN, IN - работают нормально.

IsNull пишется "IS NULL".

String - ... такого скорее всего нет. Надо искать замену.

Вместо GetDate (возможно) надо юзать SYSDATE

Но это все мелочи. Настоящий трешак и режимы транзакций и
Неявное начало пишущей транзакции, мутация таблиц, и как уже говорили безразличие Oracle
к NULL и пустой строке. А также более ограниченный набор типов данных (нету short, int, boolean).
И очень много исторически сложившихся ограничителей (имя схемы и объекта не более 30 символов)
и VARCHAR2 в таблицах не более 4K байтов (для Oracle до 11).
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503049
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Takayavot1,

одно из отличий обычных запросов то, что UPDATE (и по моему INSERT) не поддерживают JOIN.
Т.е. нельзя через JOIN объединить в одном UPDATE запросе две таблицы, чтобы, например, скопировать данные одной в другую.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503064
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yuri Abeleодно из отличий обычных запросов то, что UPDATE (и по моему INSERT) не поддерживают JOIN.
Т.е. нельзя через JOIN объединить в одном UPDATE запросе две таблицы, чтобы, например, скопировать данные одной в другую.
глупости. единственно майкрософту пофиг на девелоперов и если джоин генерит несколько разных записей то мсскл тих бросает монетку и выбирает рандоном одну из записей, гарантируя начная секаса.
в оракле реализованна дополнительная проверка, нужно констрейтами убедить субд что такой лажи не произойдет.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503107
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!,

0. Давайте без holly wars?! ( "майкрософту пофиг на девелоперов" и т.п.)
1. Неправильное использование инструмента не делает инструмент плохим
2. Сроки выбираются не случайно, а берется первая найденная. Об этом нужно просто знать, и соответственно строить запросы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
IF OBJECT_ID('T_SOURCE') IS NOT NULL
  DROP TABLE T_SOURCE;
IF OBJECT_ID('T_TARGET') IS NOT NULL
  DROP TABLE T_TARGET;

CREATE TABLE T_SOURCE (ID INT, Value NVARCHAR(MAX), ReverceRank INT);
INSERT INTO T_SOURCE VALUES
(1, 'AAA', 1),
(2, 'BBB', 2),
(2, 'CCC', 1),
(3, 'DDD', 3),
(3, 'EEE', 2),
(3, 'FFF', 1);
SELECT * FROM T_SOURCE;

CREATE TABLE T_TARGET (ID INT, Value NVARCHAR(MAX));
INSERT INTO T_TARGET VALUES
(1, 'GGG'),
(2, 'HHH'),
(3, 'III');
SELECT * FROM T_TARGET;

UPDATE TRG
SET Value = SRC.Value
FROM T_TARGET TRG INNER JOIN T_SOURCE SRC ON TRG.ID = SRC.ID;
SELECT * FROM T_TARGET;

UPDATE TRG
SET Value = SRC.Value
FROM T_TARGET TRG INNER JOIN T_SOURCE SRC ON TRG.ID = SRC.ID
WHERE SRC.ReverceRank = 1;
SELECT * FROM T_TARGET;
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503170
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yuri Abele0. Давайте без holly wars?! ( "майкрософту пофиг на девелоперов" и т.п.)
1. Неправильное использование инструмента не делает инструмент плохим
2. Сроки выбираются не случайно, а берется первая найденная. Об этом нужно просто знать, и соответственно строить запросы:

по мне если в инструменте не доделаны базовые проверки это делает плохим инструмент.
язык SQL декларативный, там нет понятия первая, если явно не указана сортировка. "первая" на основном сервере может быть не первой на стендбай сервере, с веселыми и трудно находимыми результами. подбрасывание монетки делает фиговым инструмент.
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503172
Фотография Yuri Abele
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!,

согласен. Именно поэтому и нужно, я цитирую, "соответственно строить запросы".
В моем скрипте пример с ReverseRank. Он не обязан быть физическим полем таблицы, а приJOINнная таблица не обязана быть таблицей, а может быть и именованным подзапросом (или даже VIEW)
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39503195
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНастоящий трешак ...

Как правило, с этих слов начинается описание либо незначимых мелочей, либо плюсов Оракла по сравнению с альтернативами :)
...
Рейтинг: 0 / 0
T-sql vs PL/SQL (разница в синтаксисе)
    #39556364
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerС этих слов начинается описание либо не значимых мелочей... (остальное не значимо)
maytonНастоящий трешак ...
Настоящий трешак начинается, когда сверху спускают директиву перейти MS SQL на Oracle. Вменяемые сразу увольняются. Оставшиеся пишут на форум
Takayavot1Предвидится потребность писать большое кол-во запросов (на Select) в СУБД Oracle.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / T-sql vs PL/SQL (разница в синтаксисе)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]