Не получается список таблиц из базы данных - PullRequest
0 голосов
/ 22 ноября 2018

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

  • Категории

  • Адрес

Теперь, когда я запускаю запрос ниже в Oracle, я получаю только 2 таблицы, которые мне нужны:

SELECT table_name FROM user_tables;

Ссылказапроса выше: https://www.arungudelli.com/tutorial/oracle/list-all-tables-in-oracle-query/

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

public Datatable GetTables(DbConnection conn)
        {
              conn.Open();
              if (conn.State == ConnectionState.Open)
              {
                    var tables = conn.GetSchema("Tables", new string[] { "user_tables" });
              }
              conn.Close();
        }

enter image description here

Теперь, когда я делаю что-то вроде ниже, я получаю ненужные таблицы (> 1000), которые являются системными и другими таблицами (не знаю, откуда они идут, хотя у меня есть толькоКатегории и таблицы адресов):

var tables = conn.GetSchema("Tables");

Поэтому я хочу получить только список таблиц, принадлежащих текущему пользователю Oracle. Ниже приведена строка подключения:

data source="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyService)))";user id=C##Db1;password=root123;

Может кто-нибудь, пожалуйста, помогите мнес этим?

1 Ответ

0 голосов
/ 22 ноября 2018

Взято из документации Microsoft относительно GetSchema(String, String[])

Если у коллекции «Таблицы» есть три ограничения - база данных, владелец и имя таблицы - и вы хотите получить обратно только связанные таблицывместе с владельцем "Carl" необходимо передать следующие значения: null, "Carl".Если значение ограничения не передается, для этого ограничения используются значения по умолчанию.Это то же отображение, что и при передаче значения null, которое отличается от передачи пустой строки для значения параметра.В этом случае пустой строкой ("") считается значение для указанного параметра.

Вы можете прочитать подробнее здесь

...