powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Извлечь строку из произвольной таблицы
21 сообщений из 21, страница 1 из 1
Извлечь строку из произвольной таблицы
    #35049633
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не подскажите логику реализации или пакеты/функции, которые можно использовать?

Произвольная таблица. Все ее строки поочередно нужно положить в одну переменную (для того чтобы в дальнейшем подсчитать хэш каждой строки).

Как я полагаю, нужно брать данные о таблице из user_tab_columns. А на их основе формировать строку для извлечение строк таблицы. Но вот как реализовать последнее - хз... =)

Пишу на sql developer.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049652
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите ваш код, которым вы уже извлекли список столбцов.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049725
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
create or replace
procedure CountHash
(
v_tablename IN varchar2
)
as
cursor c_tab is
select column_name
from user_tab_columns
where table_name=v_tablename;
v_tabrecord c_tab%ROWTYPE;
v_record varchar2(1024);

begin
open c_tab;
loop
fetch c_tab into v_tabrecord;
exit when c_tab%NOTFOUND;
v_record := v_record ||' '|| v_tabrecord.column_name;

/*в общем, тут и загвоздка - как эти данные превратить в строку для курсора - хз*/

end loop;
close c_tab;

end;
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049758
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего б просто хэш запросом не считать?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049813
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAlА чего б просто хэш запросом не считать?

это что имеется в виду?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049953
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fthcreate or replace
procedure CountHash
(
v_tablename IN varchar2
)
as
cursor c_tab is
select column_name
from user_tab_columns
where table_name=v_tablename;
v_tabrecord c_tab%ROWTYPE;
v_record varchar2(1024);

begin
open c_tab;
loop
fetch c_tab into v_tabrecord;
exit when c_tab%NOTFOUND;
v_record := v_record ||' '|| v_tabrecord.column_name;

/*в общем, тут и загвоздка - как эти данные превратить в строку для курсора - хз*/

end loop;
close c_tab;

end;


Что-то в этом роде.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
    fetch c_tab into v_tabrecord;
    exit when c_tab%NOTFOUND;
    v_record := v_record ||', to_char('|| v_tabrecord.column_name || ')';
    
end loop;

    v_sql := 'select 1 ' || v_record || ' from ' || v_tablename;
    open cursor new_cur for v_sql;
...
    -- фетчим (в запросе будет одна строка, представляющая собой сложение всех столбцов, приведенных к строке), закрываем

...

Меня смущает сам подход.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049981
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
temperature457

Меня смущает сам подход.

Спасибо!
А какой подход Вы бы предложили?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35049997
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth temperature457

Меня смущает сам подход.

Спасибо!
А какой подход Вы бы предложили?
Для чего вы хотите считать «хэш» каждой строки в таблице?

P.S. Только в запросе будет не одна строка, а один столбец :) Строк будет столько, сколько строк в таблице.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050025
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
temperature457 ziobra_fth temperature457

Меня смущает сам подход.

Спасибо!
А какой подход Вы бы предложили?
Для чего вы хотите считать «хэш» каждой строки в таблице?

P.S. Только в запросе будет не одна строка, а один столбец :) Строк будет столько, сколько строк в таблице.

В идеале посчитать хэш всей таблицы. Но для этого нужно всю таблицу запихнуть в одну переменную - dbms_crypto.hash берется от переменной. Насколько это целесообразно?

А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050142
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth
А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша.
Аааа...
Эээээ...
Зачем???
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050148
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
temperature457 ziobra_fth
А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша.
Аааа...
Эээээ...
Зачем???

есть др. возможность осуществлять контроль целостности таблиц в бд?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050179
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth temperature457 ziobra_fth
А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша.
Аааа...
Эээээ...
Зачем???

есть др. возможность осуществлять контроль целостности таблиц в бд?

Хм-м-м...
Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"???
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050230
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55
Хм-м-м...
Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"???

Ну, контроль того, что в таблице не были произведены несанкционированные изменения данных.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050249
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth tru55
Хм-м-м...
Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"???

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

Это делается другими средствами.
Например, если речь идет об Oracle, то:
1. соответствующие гранты
2. использование VIEW или хранимых процедур для изменения данных
3. триггера
4. аудит
5. FGAC
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050343
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55Это делается другими средствами.
Например, если речь идет об Oracle, то:
1. соответствующие гранты
2. использование VIEW или хранимых процедур для изменения данных
3. триггера
4. аудит
5. FGAC

А Вы не подкинете какие-нить ссылки на материалы об этом?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050365
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth tru55Это делается другими средствами.
Например, если речь идет об Oracle, то:
1. соответствующие гранты
2. использование VIEW или хранимых процедур для изменения данных
3. триггера
4. аудит
5. FGAC

А Вы не подкинете какие-нить ссылки на материалы об этом?

Хм-м-м...
Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске.
Если нету - дык она в свободном скачивании на сервере www.oracle.com
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050428
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55Хм-м-м...
Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске.
Если нету - дык она в свободном скачивании на сервере www.oracle.com

Oracle® Database Security Guide?
или еще какие-нибудь доки?
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050530
Фотография ziobra_fth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55 ziobra_fth tru55
Хм-м-м...
Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"???

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

Это делается другими средствами.
Например, если речь идет об Oracle, то:
1. соответствующие гранты
2. использование VIEW или хранимых процедур для изменения данных
3. триггера
4. аудит
5. FGAC

You can use hash values to verify whether data has been altered. For example, before storing data, Laurel runs DBMS_CRYPTO.HASH against the stored data to create a hash value. When she retrieves the stored data at a later date, she can again run the hash function against it, using the same algorithm. If the second hash value is identical to the first one, then the data has not been altered. Hash values are similar to "file fingerprints" and are used to ensure data integrity.
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050535
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth tru55Хм-м-м...
Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске.
Если нету - дык она в свободном скачивании на сервере www.oracle.com

Oracle® Database Security Guide?
или еще какие-нибудь доки?

Хм-м-м...
Так навскидку не скажу, есть ведь возможность "мультитомного поиска" (не говоря уж о версии - 9 или 10). Как минимум, еще Administrator Guide и Application Developer Guide
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050540
temperature457
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth
есть др. возможность осуществлять контроль целостности таблиц в бд?
Так дела не делаются, совершенно точно :)
...
Рейтинг: 0 / 0
Извлечь строку из произвольной таблицы
    #35050547
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziobra_fth
You can use hash values to verify whether data has been altered. For example, before storing data, Laurel runs DBMS_CRYPTO.HASH against the stored data to create a hash value. When she retrieves the stored data at a later date, she can again run the hash function against it, using the same algorithm. If the second hash value is identical to the first one, then the data has not been altered. Hash values are similar to "file fingerprints" and are used to ensure data integrity.

Я не сомневаюсь, что в сложных случаях можно использовать разные методы вплоть до шифрования данных. Другое дело, что все это усложнение (и замедление) работы, поэтому, если можно обойтись более простыми средствами - то почему бы и нет. То бишь, все зависит от бизнес-условий...
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Извлечь строку из произвольной таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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