Как сделать общую ссылку на столбец первичного ключа в oracle SQL? - PullRequest
0 голосов
/ 06 января 2020

У меня есть несколько таблиц с уникальным именем столбца для каждого из их первичных ключей, таких как: DeviceName, DeviceNumber, SwitchNumber, Et c.

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

Table#2
TableName, InstanceNumber

Я хотел бы использовать информацию в таблице # 2 для извлечения соответствующих записей из таблицы в «TableName» путем ссылки на атрибут «InstanceNumber» в качестве PK для каждой соответствующей таблицы без необходимости вручную создавать ссылку для имени столбца каждой таблицы.

Есть ли способ, которым я могу это сделать? То есть создать запрос, который ссылается на «общее» имя столбца на таблицу, которая указывает на столбец первичного ключа?

Select * from (TableName) where (PrimaryKeyColumn) = (InstanceNumber);

1 Ответ

2 голосов
/ 06 января 2020

Вы можете сделать это только с помощью Dynami c SQL - в PL / SQL это будет execute immediate.

Почему бы и нет? Вот одна из причин. Все столбцы, возвращаемые запросом, должны быть известны при компиляции запроса. То есть до того, как какие-либо данные будут прочитаны. Вы запрашиваете набор столбцов, который зависит от таблицы в данных. Таким образом, столбцы НЕ известны, и запрос не может быть скомпилирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...