Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
3
Добавлен:
15.01.2021
Размер:
20.63 Кб
Скачать

Лабораторная работа №1. Вариант 11

  1. Как поступает Oracle с типами данных ANSI?

Oracle Database Gateway для ODBC сопоставляет типы данных, используемые в ODBC-совместимых источниках данных, с поддерживаемыми типами данных Oracle. Когда возвращаются результаты запроса, база данных Oracle преобразует типы данных ODBC в типы данных Oracle. Например, тип данных ODBC SQL_TIMESTAMPпреобразуется в DATEтип данных Oracle .

Если таблица содержит столбец, тип данных которого не поддерживается Oracle Database Gateway для ODBC, информация столбца не возвращается в базу данных Oracle.

Таблица A-1 отображает типы данных ODBC в эквивалентные типы данных ANSI и Oracle. В некоторых случаях точность эквивалентности типам данных ANSI не гарантируется, поскольку стандарт ANSI SQL делегирует определение числовой точности и максимальной длины символьных данных отдельным реализациям. Эта таблица отражает вероятное соответствие между типами данных ANSI и ODBC для типичной реализации ANSI SQL.

Таблица A-1

ANSI

ODBC

Oracle

NUMERIC(19,0)

SQL_BIGINT

NUMBER(19,0)

N/A

SQL_BINARY

RAW

CHAR

SQL_CHAR

CHAR

DATE

SQL_DATE

DATE

DECIMAL(p,s)

SQL_DECIMAL(p,s)

NUMBER(p,s)

DOUBLE PRECISION

SQL_DOUBLE

FLOAT(53)

FLOAT

SQL_FLOAT

FLOAT(53)

INTEGER

SQL_INTEGER

NUMBER(10)

Примечание. При определенных обстоятельствах INTEGERтип данных ANSI может быть сопоставлен Precision 38, но обычно он сопоставляется Precision 10.

N/A

SQL_LONGVARBINARY

LONG RAW

N/A

SQL_LONGVARCHAR

LONG

Примечание. Если реализация ANSI SQL определяет большое значение максимальной длины VARCHAR данных, возможно, что ANSI VARCHAR будет отображаться в SQL_LONG VARCHAR Oracle и LONG. То же самое и для OLE DB DBTYPE_STRING (длинный атрибут).

REAL

SQL_REAL

FLOAT(24)

SMALLINT

SQL_SMALLINT

NUMBER(5)

TIME

SQL_TYPE_TIME

CHAR(15)

TIMESTAMP

SQL_TYPE_TIMESTAMP

DATE

NUMERIC(3,0)

SQL_TINYINT

NUMBER(3)

VARCHAR

SQL_VARCHAR

VARCHAR2

BOOLEAN

SQL_BIT

NUMBER(3)

2. Какие  арифметические выражения SQL возвращают дату?

  1. '03-jul-96'+7

  2. ’03-jul-96’-12

  3. ’03-jul-96’+(12/24)

3. Прокомментируйте  следующие команды SQL:

CREATE TABLE dept (deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13));

ROLLBACK;

DESCRIBE dept

Что мы получим в результате их выполнения?

Оператор DESCRIBE DEPT возвращает ошибку ORA-04043: объект DEPT не существует.

Оператор DESCRIBE DEPT отображает структуру таблицы DEPT.

Оператор DESCRIBE DEPT отображает структуру таблицы DEPT, только если есть оператор COMMIT, введенный перед оператором ROLLBACK.

Оператор ROLLBACK освобождает место для хранения, занимаемое таблицей DEPT.

Структура таблицы DEPT будет отображаться, поскольку оператор CREATE TABLE является операцией DDL, и ее нельзя откатить, поскольку в базе данных происходит неявная фиксация, когда пользователь выходит из SQL * Plus или выдает команду языка определения данных (DDL), например оператор создания таблицы, пользователь для создания объекта базы данных или оператор изменения таблицы, используемый для изменения объекта базы данных.

Лабораторная работа №2. Вариант 11

1. Какое из выражений точно именует ограничение:

C. ALTER TABLE student_grades ADD CONSTRAINT student_id_fk FOREIGN

2. Условия в SQL Oracle. Условия проверки вхождения элемента в интервал. Синтаксис.

Примеры.