|
|
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
Не подскажите логику реализации или пакеты/функции, которые можно использовать? Произвольная таблица. Все ее строки поочередно нужно положить в одну переменную (для того чтобы в дальнейшем подсчитать хэш каждой строки). Как я полагаю, нужно брать данные о таблице из user_tab_columns. А на их основе формировать строку для извлечение строк таблицы. Но вот как реализовать последнее - хз... =) Пишу на sql developer. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 12:26 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
Приведите ваш код, которым вы уже извлекли список столбцов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 12:32 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
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; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 12:51 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
А чего б просто хэш запросом не считать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 13:01 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
DocAlА чего б просто хэш запросом не считать? это что имеется в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 13:14 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
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. Меня смущает сам подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 13:47 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
temperature457 Меня смущает сам подход. Спасибо! А какой подход Вы бы предложили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 13:55 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth temperature457 Меня смущает сам подход. Спасибо! А какой подход Вы бы предложили? Для чего вы хотите считать «хэш» каждой строки в таблице? P.S. Только в запросе будет не одна строка, а один столбец :) Строк будет столько, сколько строк в таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 14:00 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
temperature457 ziobra_fth temperature457 Меня смущает сам подход. Спасибо! А какой подход Вы бы предложили? Для чего вы хотите считать «хэш» каждой строки в таблице? P.S. Только в запросе будет не одна строка, а один столбец :) Строк будет столько, сколько строк в таблице. В идеале посчитать хэш всей таблицы. Но для этого нужно всю таблицу запихнуть в одну переменную - dbms_crypto.hash берется от переменной. Насколько это целесообразно? А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 14:08 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша. Аааа... Эээээ... Зачем??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 14:38 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
temperature457 ziobra_fth А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша. Аааа... Эээээ... Зачем??? есть др. возможность осуществлять контроль целостности таблиц в бд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 14:40 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth temperature457 ziobra_fth А вообще моя задача - написать программу для контроля целостности таблиц в бд путем подсчета их хэша. Аааа... Эээээ... Зачем??? есть др. возможность осуществлять контроль целостности таблиц в бд? Хм-м-м... Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 14:51 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
tru55 Хм-м-м... Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"??? Ну, контроль того, что в таблице не были произведены несанкционированные изменения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 15:06 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth tru55 Хм-м-м... Я знаю, что такое целостность данных в БД, а вот что такое "целостность таблиц в БД"??? Ну, контроль того, что в таблице не были произведены несанкционированные изменения данных. Это делается другими средствами. Например, если речь идет об Oracle, то: 1. соответствующие гранты 2. использование VIEW или хранимых процедур для изменения данных 3. триггера 4. аудит 5. FGAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 15:11 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
tru55Это делается другими средствами. Например, если речь идет об Oracle, то: 1. соответствующие гранты 2. использование VIEW или хранимых процедур для изменения данных 3. триггера 4. аудит 5. FGAC А Вы не подкинете какие-нить ссылки на материалы об этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 15:30 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth tru55Это делается другими средствами. Например, если речь идет об Oracle, то: 1. соответствующие гранты 2. использование VIEW или хранимых процедур для изменения данных 3. триггера 4. аудит 5. FGAC А Вы не подкинете какие-нить ссылки на материалы об этом? Хм-м-м... Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске. Если нету - дык она в свободном скачивании на сервере www.oracle.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 15:35 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
tru55Хм-м-м... Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске. Если нету - дык она в свободном скачивании на сервере www.oracle.com Oracle® Database Security Guide? или еще какие-нибудь доки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 15:53 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 16:12 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth tru55Хм-м-м... Ссылок не имею, поскольку все есть в доке, которая лежит у меня на локальном диске. Если нету - дык она в свободном скачивании на сервере www.oracle.com Oracle® Database Security Guide? или еще какие-нибудь доки? Хм-м-м... Так навскидку не скажу, есть ведь возможность "мультитомного поиска" (не говоря уж о версии - 9 или 10). Как минимум, еще Administrator Guide и Application Developer Guide ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 16:13 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
ziobra_fth есть др. возможность осуществлять контроль целостности таблиц в бд? Так дела не делаются, совершенно точно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 16:15 |
|
||
|
Извлечь строку из произвольной таблицы
|
|||
|---|---|---|---|
|
#18+
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. Я не сомневаюсь, что в сложных случаях можно использовать разные методы вплоть до шифрования данных. Другое дело, что все это усложнение (и замедление) работы, поэтому, если можно обойтись более простыми средствами - то почему бы и нет. То бишь, все зависит от бизнес-условий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2008, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=151&tid=1345580]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 387ms |

| 0 / 0 |
