Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Извлечь строку из произвольной таблицы / 21 сообщений из 21, страница 1 из 1
09.01.2008, 12:26
    #35049633
ziobra_fth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
Не подскажите логику реализации или пакеты/функции, которые можно использовать?

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

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

Пишу на sql developer.
...
Рейтинг: 0 / 0
09.01.2008, 12:32
    #35049652
temperature457
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
Приведите ваш код, которым вы уже извлекли список столбцов.
...
Рейтинг: 0 / 0
09.01.2008, 12:51
    #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
09.01.2008, 13:01
    #35049758
DocAl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
А чего б просто хэш запросом не считать?
...
Рейтинг: 0 / 0
09.01.2008, 13:14
    #35049813
ziobra_fth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
DocAlА чего б просто хэш запросом не считать?

это что имеется в виду?
...
Рейтинг: 0 / 0
09.01.2008, 13:47
    #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
09.01.2008, 13:55
    #35049981
ziobra_fth
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
temperature457

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Oracle® Database Security Guide?
или еще какие-нибудь доки?
...
Рейтинг: 0 / 0
09.01.2008, 16:12
    #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
09.01.2008, 16:13
    #35050535
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
ziobra_fth tru55Хм-м-м...
Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске.
Если нету - дык она в свободном скачивании на сервере www.oracle.com

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

Хм-м-м...
Так навскидку не скажу, есть ведь возможность "мультитомного поиска" (не говоря уж о версии - 9 или 10). Как минимум, еще Administrator Guide и Application Developer Guide
...
Рейтинг: 0 / 0
09.01.2008, 16:15
    #35050540
temperature457
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Извлечь строку из произвольной таблицы
ziobra_fth
есть др. возможность осуществлять контроль целостности таблиц в бд?
Так дела не делаются, совершенно точно :)
...
Рейтинг: 0 / 0
09.01.2008, 16:17
    #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]