|
|
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые посетители sql.ru! Мне надо портировать проект завязанный на mssql2000 на postgresql. Все бы ничего, но есть одна проблема, очень много данных типа sqlvariant. Сразу скажу, что данные хранить в разных таблицах по типам в этом проекте неприемлимо. Итак, как мне получить тип sqlvariant для постгреса? Насколько я понял, родной поддержки этого типа нет. Возможно ли такое вообще? Может кто сталкивался? Или хотябы в какую сторону копать? Только не пинайте сильно, у меня пока ещё мало опыта с sql :) Заранее большое спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 12:06 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
Что это такое "sqlvariant" и что такое "данные хранить в разных таблицах по типам в этом проекте неприемлимо"? Есть вот такое в пг, но не знаю, про Вас это или нет: http://www.postgresql.org/docs/8.2/interactive/datatype-pseudo.html . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 13:23 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
Misha Tyurin Что это такое "sqlvariant" и что такое "данные хранить в разных таблицах по типам в этом проекте неприемлимо"?Я меня тоже возникли эти вопросы :) Автору, Ваш проект завязан на каких-то нестандартных фишках MS-SQL, и при этом вы заявляете, что отказаться от них "неприемлимо". Я вижу такие варианты: 1) Пересмотреть исходный проект в пользу отказа от не стандартных фишек 2) Пересмотреть идею смены БД 3) Прочитать мануал по PostgreSQL. PostgreSQL отлично работает с пользовательскими типами данных, наверняка у вас получиться создать тип sqlvariant :) Только в этом случае, если через год вы решите перейти на MySQL, возникнут те же вопросы. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 14:20 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
2Misha Tyurin: Прошу прощения, немного некорректно назвал этот тип, в mssql он назывется sql_variant. Если объявить поле такого типа, то в такое поле можно будет записать значения типа int, decimal, char, binary или nchar. Имеется одна большая таблица, первое поле - суррогатный PK, второе поле - как раз sql_variant, то есть в ней лежат данные разных типов. Как выход можно было бы int'ы - в отдельную таблицу, char'ы - в отдельную и.т.д, но так пока неприемлемо. Псевдотипы мне не подходят, потому что, как я понял нельзя обявить поле такого типа в таблице, а можно только использовать в качестве возвращаемого значения или параметра функции. 2Serik Akhmetov: Проект по идее должен иметь поддержку нескольких СУБД (mssql, postgres, oracle, mysql в обозримом будущем не планируется), начато было все с mssql, неперь надо поддержку postgres, но этого треклятого sql_variant там нет :) По этим причинам "смены БД" как таковой нет, нужна и та и другая :) Про создание такого типа "вручную" (с помощью CREATE TYPE) я тоже думал, но как в таком случае быть с индексами? Табличка оооооооочень большая будет. Я просто хочу выяснить есть ли в принципе возможность решения моей проблемы для pg не прибегая к системному программированию (патчингу pg). Ещё раз спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 14:43 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
А каким образом портировать собираетесь? Выгрузкой dml, его исполнением, и sql инсертами последующими? И как вы строили индексы по sql_variant? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 15:41 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
смотрим http://www.postgresql.org/docs/8.2/interactive/rowtypes.html и пишем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. для добавления Код: plaintext Код: plaintext если определить операции сравнения, то думаю, можно и индекс построить. Свое мнение по поводу проектирования с учетом переносимости и стандарта SQL оставлю при себе :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 15:42 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
Nu ia by lichno opredelil novyi C-y tip, 'a la' bytea I sdelal by 'cast'y int --> your_type, numeric --> your_type, bytea --> your_type .. i obratnye cast'y... Ia dumayu eto optimalnyi put', no trebuet programmirovania na C in/out functsii i CAST'ov. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 19:11 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
Вопрос по SQLvariant и возможность обращения к системным таблицам был решён или нет? Появилась аналогичная задача... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 08:57 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
AndyKuvaldin, формулировка - ну очень порадовала. SqlVariant, насколько знаю, так и не появился (что не может не радовать). А вот это AndyKuvaldinвозможность обращения к системным таблицам Какой доступ, к каким таблицам, какие данные пытаешься вытянуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 09:21 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
rovanAndyKuvaldin, формулировка - ну очень порадовала. SqlVariant, насколько знаю, так и не появился (что не может не радовать). А вот это AndyKuvaldinвозможность обращения к системным таблицам Какой доступ, к каким таблицам, какие данные пытаешься вытянуть? Имена таблиц, наименование полей и индексы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 09:37 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
AndyKuvaldinИмена таблиц, наименование полей и индексы... PG предоставляет возможность доступа к метаданным как через стандартную схему ( INFORMATION_SCHEMA ) так и через собственные таблицы метаданных. Изучай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 09:44 |
|
||
|
sqlvariant для postgres
|
|||
|---|---|---|---|
|
#18+
rovanAndyKuvaldinИмена таблиц, наименование полей и индексы... PG предоставляет возможность доступа к метаданным как через стандартную схему ( INFORMATION_SCHEMA ) так и через собственные таблицы метаданных. Изучай. спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2015, 09:58 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34282461&tid=1998131]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 498ms |

| 0 / 0 |
