Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> столбцы таблицы в оракле 
:(
    Опции темы
17dufa
Дата 21.7.2010, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



допустим мне известно только имя таблицы.
можно ли по системным таблицам узнать какие у этой известной мне таблицы столбцы?
PM MAIL   Вверх
Zloxa
Дата 21.7.2010, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161





--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
17dufa
Дата 22.7.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



Zloxa, а что это?
можно PL-SQL запрос?
PM MAIL   Вверх
azesmcar
Дата 22.7.2010, 15:09 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Код

select * from user_tab_columns where table_name = 'table1'

PM   Вверх
Zloxa
Дата 22.7.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



azesmcar, это не PL/SQL запрос!  smile 


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
ksogor
Дата 22.7.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.7.2010

Репутация: нет
Всего: нет



Zloxa, если Вы не в курсе, то SQL  - это язык запросов, PL/SQL – язык программирования.
Если всё ещё непонятно: запрос нельзя написать на процедурном языке. PL/SQL запросов не существует.
Но можно использовать SQL запросы в PL/SQL коде, если данные загружаются в переменную или курсор:
Код

DECLARE
  all_data SYS_REFCURSOR;
BEGIN
  OPEN all_data FOR SELECT * FROM user_tab_columns WHERE table_name = ‘table1’;
END;

При желании и умении чтения мануалов можно ещё и вывести данные из переменной или даже курсора.


Это сообщение отредактировал(а) ksogor - 22.7.2010, 15:32
PM MAIL   Вверх
Zloxa
Дата 22.7.2010, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



ksogor, Огромное спасибо за просвещение. 
Однако я не совсем понял, Вы находите неверным мое утверждение, мол azesmcar продемонстрировал НЕ PL/SQL запрос?

Это сообщение отредактировал(а) Zloxa - 22.7.2010, 15:32


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 22.7.2010, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(Zloxa @  22.7.2010,  15:11 Найти цитируемый пост)
azesmcar, это не PL/SQL запрос!  smile  

 smile виноват, исправлюсь
Код

create or replace procedure get_columns(tbl varchar2, cols out SYS_REFCURSOR) is
begin
       open cols for
              select * from user_tab_columns where table_name = tbl;
end;

 smile

ksogor

вообще-то это была шутка smile 


Это сообщение отредактировал(а) azesmcar - 22.7.2010, 15:36
PM   Вверх
ksogor
Дата 22.7.2010, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.7.2010

Репутация: нет
Всего: нет



Zloxa, да, пожалуй. Так же точно, как то, что это не PL-SQL запрос. (Первоначально мне показалось, что Вы топикстартер, так что прошу прощения.)

Это сообщение отредактировал(а) ksogor - 22.7.2010, 15:40
PM MAIL   Вверх
Zloxa
Дата 22.7.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(azesmcar @  22.7.2010,  15:32 Найти цитируемый пост)
исправлюсь

в твоем PL/SQL слишком мало PL/SQL и много SQL;
Чистый PL/SQL:
Код

SQL> declare
  2    xml xmltype;
  3    element xmltype;
  4    cntr number := 1;
  5  begin
  6    xml := XMLType(sys.dbms_metadata.get_xml(object_type => 'VIEW'
  7                                            ,name => 'ALL_OBJECTS'
  8                                            ,schema => 'SYS'
  9                                            )
 10                   );
 11    loop
 12      element := xml.Extract('//ROWSET/ROW/VIEW_T/COL_LIST/COL_LIST_ITEM[position()='||cntr||']/NAME/text()');
 13      exit when element is null;
 14      dbms_output.put_line(element.getStringVal);
 15      cntr := cntr +1;
 16    end loop;
 17  end;
 18  /
 
OWNER
OBJECT_NAME
SUBOBJECT_NAME
OBJECT_ID
DATA_OBJECT_ID
OBJECT_TYPE
CREATED
LAST_DDL_TIME
TIMESTAMP
STATUS
TEMPORARY
GENERATED
SECONDARY
 
PL/SQL procedure successfully completed


Это сообщение отредактировал(а) Zloxa - 22.7.2010, 17:06


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
azesmcar
Дата 22.7.2010, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(Zloxa @  22.7.2010,  16:49 Найти цитируемый пост)
Чистый PL/SQL:

 smile 
красиво smile 

а оператор конкатенации точно PL/SQL или тут лучше использовать CONCAT?

Это сообщение отредактировал(а) azesmcar - 22.7.2010, 17:02
PM   Вверх
Zloxa
Дата 22.7.2010, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(azesmcar @  22.7.2010,  16:55 Найти цитируемый пост)
точно

 smile 
Просто он одинаково пишится и там и там.

Добавлено @ 17:08
Цитата(Zloxa @  22.7.2010,  16:49 Найти цитируемый пост)
Чистый

Проклятье!!!! Я ведь использую XPath, выходит мой PL/SQL не чист.

Это сообщение отредактировал(а) Zloxa - 23.7.2010, 15:38


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
17dufa
Дата 22.7.2010, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 324
Регистрация: 2.3.2006

Репутация: нет
Всего: 5



ой, какие дискуссии порождает моя глупость smile 
первоначальный вариант azesmcar - это именно то, что я искал. 
PM MAIL   Вверх
azesmcar
Дата 23.7.2010, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Цитата(Zloxa @  22.7.2010,  17:05 Найти цитируемый пост)
Проклятье!!!! Я ведь использую XPatch, выходит мой PL/SQL не чист. 

черт побери...значит никак? smile 

Цитата(17dufa @  22.7.2010,  18:17 Найти цитируемый пост)
ой, какие дискуссии порождает моя глупость smile 
первоначальный вариант azesmcar - это именно то, что я искал.  

не переживай, это было понятно smile 
PM   Вверх
Zloxa
Дата 23.7.2010, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(azesmcar @  23.7.2010,  08:46 Найти цитируемый пост)
значит никак?

почему же... XML можно разобрать INSTRами. Но это муторно и не элегантно, потому скучно.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

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

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0546 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.