Как найти столбец в oracle

I’m trying to find a column in a very big table in ORACLE SQL Developer, its really difficult to find it visually.

Is there any easy way to find the column in the table?

For example, in DBeaver its just Tab and then Ctrl + f

enter image description here

Wai Ha Lee's user avatar

Wai Ha Lee

8,55380 gold badges57 silver badges92 bronze badges

asked Dec 21, 2015 at 10:40

snir.tur's user avatar

Oracle has an awesome data dictionary. Most of the time it will be even faster to write a query that accesses some of its views than use IDE features.

You can get columns from view ALL_TAB_COLUMNS.

SELECT *
FROM   ALL_TAB_COLUMNS
WHERE  TABLE_NAME = :your_table_name
AND    COLUMN_NAME LIKE '%YOUR_SEARCH_STRING%'

As for SQL Developer, you can open table from your connections tree, go to Columns tab and just use Edit -> Find (Ctrl/Cmd + F). Works for me in 4.0.2.15.

answered Dec 21, 2015 at 11:07

Paul's user avatar

PaulPaul

1,07512 silver badges20 bronze badges

I would prefer writing a query is more faster compared to IDE provided buttons and clicks.

If so this would work out.

Use the following.

You can try this via SQL tool that is used by you

select table_name from all_tab_columns where column_name = 'PICK_COLUMN';

Or if you have DBA privileges,

select table_name from dba_tab_columns where column_name = 'PICK_COLUMN';

But if you are not sure about the column names you can add LIKE statements to current query.

Eg:

select table_name from all_tab_columns where column_name LIKE '%PICK_COLUMN%';

answered May 8, 2018 at 6:03

Du-Lacoste's user avatar

Du-LacosteDu-Lacoste

11.2k2 gold badges67 silver badges50 bronze badges

There is no search feature in the SQL Developer data grids for finding/navigating to a specific Column, but I’ll add that as a feature request.

You may find the Single Record View handy for browsing very WIDE records.

enter image description here

answered May 8, 2018 at 13:33

thatjeffsmith's user avatar

thatjeffsmiththatjeffsmith

20k5 gold badges37 silver badges117 bronze badges

1

On toolbar, Click View->Find DB Object
Now select the connection, the type and which column the value has to be found in. (NAME,TYPE AND USAGE(ALL))
The tables are displayed, select the table to view the columns having the field you are searching for.

dbeaver search

Harry Moreno's user avatar

Harry Moreno

9,9217 gold badges61 silver badges112 bronze badges

answered Apr 3, 2018 at 7:03

Dark lord's user avatar

Right click on column header in the data grid, then you have a menu Columns where you can filter columns you want to display

answered Dec 21, 2015 at 10:43

Giggs's user avatar

GiggsGiggs

954 bronze badges

1

  1. Right click on your connection name.
  2. Then click «Find DB Object» on the context menu.
  3. It will take you to a textbox. Write your column name
  4. And check the box with «Columns».
  5. Then press «enter» or click on «Go».

Then sqldeveloper will search your column and will show you the result [ column name with table name].

answered Dec 21, 2015 at 12:25

Shafi's user avatar

ShafiShafi

1,8403 gold badges22 silver badges44 bronze badges

I need to query the database to get the column names, not to be confused with data in the table. For example, if I have a table named EVENT_LOG that contains eventID, eventType, eventDesc, and eventTime, then I would want to retrieve those field names from the query and nothing else.

I found how to do this in:

  • Microsoft SQL Server
  • MySQL
  • PostgreSQL

But I need to know: how can this be done in Oracle?

Community's user avatar

asked Jan 16, 2009 at 23:53

Paxenos's user avatar

0

You can query the USER_TAB_COLUMNS table for table column metadata.

SELECT table_name, column_name, data_type, data_length
FROM USER_TAB_COLUMNS
WHERE table_name = 'MYTABLE'

answered Jan 16, 2009 at 23:57

baretta's user avatar

barettabaretta

7,3151 gold badge25 silver badges25 bronze badges

8

In SQL Server…

SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'V' AND [Name] = 'Your table name')

Type = ‘V’ for views
Type = ‘U’ for tables

answered Jan 17, 2009 at 2:25

Eppz's user avatar

EppzEppz

3,1482 gold badges19 silver badges26 bronze badges

0

You can do this:

describe EVENT_LOG

or

desc EVENT_LOG

Note: only applicable if you know the table name and specifically for Oracle.

answered Jan 16, 2009 at 23:55

Sergey Golovchenko's user avatar

For SQL Server 2008, we can use information_schema.columns for getting column information

SELECT *
FROM   information_schema.columns
WHERE  table_name = 'Table_Name'
ORDER  BY ordinal_position  

answered Aug 23, 2012 at 15:16

Jom's user avatar

JomJom

1,8774 gold badges29 silver badges46 bronze badges

1

For SQLite I believe you can use something like the following:

PRAGMA table_info(table-name);

Explanation from sqlite.org:

This pragma returns one row for each column in the named table. Columns in the result set include the column name, data type, whether or not the column can be NULL, and the default value for the column. The «pk» column in the result set is zero for columns that are not part of the primary key, and is the index of the column in the primary key for columns that are part of the primary key.

See also: Sqlite.org Pragma Table Info

ThE uSeFuL's user avatar

ThE uSeFuL

1,4561 gold badge16 silver badges29 bronze badges

answered Apr 25, 2013 at 22:00

shieldstroy's user avatar

shieldstroyshieldstroy

1,3071 gold badge10 silver badges24 bronze badges

3

That information is stored in the ALL_TAB_COLUMNS system table:

SQL> select column_name from all_tab_columns where table_name = 'DUAL';

DUMMY

Or you could DESCRIBE the table if you are using SQL*PLUS:

SQL> desc dual
Name                               Null?    Type
----------------------------------------------------- -------- ---------------------- -------------
DUMMY                               VARCHAR2(1)

answered Jan 16, 2009 at 23:56

Jon Ericson's user avatar

Jon EricsonJon Ericson

20.8k12 gold badges97 silver badges147 bronze badges

2

The other answers sufficiently answer the question, but I thought I would share some additional information. Others describe the «DESCRIBE table» syntax in order to get the table information. If you want to get the information in the same format, but without using DESCRIBE, you could do:

SELECT column_name as COLUMN_NAME, nullable || '       ' as BE_NULL,
  SUBSTR(data_type || '(' || data_length || ')', 0, 10) as TYPE
 FROM all_tab_columns WHERE table_name = 'TABLENAME';

Probably doesn’t matter much, but I wrote it up earlier and it seems to fit.

answered Jan 17, 2009 at 2:10

Sasha's user avatar

SashaSasha

1,1907 silver badges10 bronze badges

1

For Oracle

SELECT column_name FROM user_tab_cols WHERE table_name=UPPER('tableName');

answered Feb 7, 2013 at 10:19

jampez77's user avatar

jampez77jampez77

4,9627 gold badges30 silver badges52 bronze badges

describe YOUR_TABLE;

In your case :

describe EVENT_LOG;

answered Mar 1, 2013 at 6:24

Rohit's user avatar

RohitRohit

1091 silver badge8 bronze badges

Even this is also one of the way we can use it

select * from product where 1 != 1

Robert's user avatar

Robert

5,27843 gold badges65 silver badges115 bronze badges

answered Feb 25, 2014 at 15:58

Jaisankar's user avatar

JaisankarJaisankar

4531 gold badge5 silver badges10 bronze badges

select column_name,* from information_schema.columns
 where table_name = 'YourTableName'
order by ordinal_position

answered Oct 6, 2012 at 8:38

1

For MySQL, use

SELECT column_name 
FROM information_schema.columns 
WHERE 
table_schema = 'Schema' AND table_name = 'Table_Name'

Nick Cox's user avatar

Nick Cox

35.2k6 gold badges31 silver badges47 bronze badges

answered Jan 21, 2013 at 18:23

ssamuel68's user avatar

ssamuel68ssamuel68

93213 silver badges10 bronze badges

For SQL Server:

SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = object_id('TABLE_NAME')

Tushar Gupta - curioustushar's user avatar

answered Apr 16, 2013 at 13:28

bstricks's user avatar

bstricksbstricks

8238 silver badges14 bronze badges

SELECT COLUMN_NAME 'all_columns' 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME='user';

Lucas Zamboulis's user avatar

answered May 27, 2014 at 11:35

expert one's user avatar

1

You could also try this, but it might be more information than you need:

sp_columns TABLE_NAME

answered Jan 18, 2013 at 23:16

WEFX's user avatar

WEFXWEFX

8,2408 gold badges66 silver badges100 bronze badges

SELECT A.COLUMN_NAME, A.* FROM all_tab_columns a 
WHERE table_name = 'Your Table Name'
AND A.COLUMN_NAME = 'COLUMN NAME' AND a.owner = 'Schema'

dreamcrash's user avatar

dreamcrash

46k25 gold badges90 silver badges113 bronze badges

answered Oct 25, 2013 at 19:30

Henry's user avatar

HenryHenry

191 bronze badge

0

Mysql

SHOW COLUMNS FROM a_table_named_users WHERE Field REGEXP 'user_id|user_name|user_pass'

This will return a result something like this:

Field     |  Type        |   Null   |   Key   |   Default   |   Extra  
user_id      int(8)          NO         PRI       NULL          auto_increment
user_name    varchar(64)     NO         MUL       NULL
user_pass    varchar(64)     NO                   NULL

Then to pull out the values you can simply

fetch row[0]

This is also great for passing input dynamically since the REGEXP needs the ‘|’ for multiple inputs, but is also a way to keeps data separated and easy to store/pass to classes/functions.

Try throwing in dummy data as well for security when sending it out and compare what was returned when receiving any errors.

answered Sep 21, 2014 at 8:08

Dbo's user avatar

In Oracle, there is two views that describe columns:

  • DBA_TAB_COLUMNS describes the columns of all tables, views, and
    clusters in the database.

  • USER_TAB_COLUMNS describes the columns of the tables, views, and
    clusters owned by the current user. This view does not display the
    OWNER column.

answered Sep 6, 2017 at 9:03

Renaud Kern's user avatar

Renaud KernRenaud Kern

1,0989 silver badges25 bronze badges

The answer is here: http://php.net/manual/en/function.mysql-list-fields.php
I’d use the following code in your case:

$result = mysql_query("SHOW COLUMNS FROM sometable");
if (!$result) {
    echo 'Could not run query: ' . mysql_error();
    exit;
}
$fields = array();
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        $fields[] = $row['Field'];
    }
}

answered Jul 9, 2013 at 15:39

user2558588's user avatar

you can run this query

SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%%' --if you want to find specific column write here 
ORDER BY schema_name, table_name;

answered Oct 17, 2014 at 7:24

Etibar - a tea bar's user avatar

Try this

select * from sys.all_columns c join sys.objects o on c.object_id=o.object_id where o.name = 'TABLENAME' and c.name like '%COLUMN NAME%'

Dan Is Fiddling By Firelight's user avatar

answered Jul 9, 2014 at 10:45

pals17's user avatar

Just select first row from the table , for oracle : select * from <table name> where rownum = 1;

answered Apr 24, 2014 at 13:09

blue-sky's user avatar

blue-skyblue-sky

51.6k147 gold badges422 silver badges738 bronze badges

1

Came across this question looking for access to column names on Teradata, so I’ll add the answer for their ‘flavour’ of SQL:

SELECT ColumnName
FROM DBC.Columns
WHERE DatabaseName='DBASE_NAME'
AND TableName='TABLE_NAME';

The info is stored in the DBC dbase.

Getting data types is a little bit more involved:
Get column type using teradata system tables

Community's user avatar

answered Jul 3, 2014 at 9:24

carnust's user avatar

carnustcarnust

6111 gold badge8 silver badges10 bronze badges

I did it like this

SELECT 
    TOP 0
    *
FROM
    Posts

It works even in http://data.stackexchange.com whose service tables I am not aware of!

answered Sep 22, 2013 at 11:51

Val's user avatar

SELECT COLUMN_NAME 
FROM YourDatabase.INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'YourTableName'

Luís Cruz's user avatar

Luís Cruz

14.7k16 gold badges67 silver badges100 bronze badges

answered Dec 14, 2014 at 1:08

user3655399's user avatar

В этом учебном материале вы узнаете, как использовать SQL оператор ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с множеством ясных и кратких примеров).

Описание

SQL оператор ALTER TABLE используется для добавления, изменения или удаления столбцов в таблице. SQL оператор ALTER TABLE также используется для переименования таблицы.

Добавить столбец в таблицу

Синтаксис

Синтаксис SQL оператора ALTER TABLE для добавления столбца в таблицу.

ALTER TABLE table_name
ADD column_name column_definition;

Пример

Давайте посмотрим на SQL ALTER TABLE пример, который добавляет столбец.
Например.

ALTER TABLE supplier

  ADD supplier_name char(50);

Этот SQL пример ALTER TABLE добавит столбец с именем supplier_name в таблицу supplier.

Добавить несколько столбцов в таблицу

Синтаксис

Синтаксис SQL ALTER TABLE для добавления несколько столбцов в существующую таблицу.

ALTER TABLE table_name
ADD (column_1 column_definition,
column_2 column_definition,

column_n column_definition);

Пример

Давайте посмотрим на SQL ALTER TABLE пример, который добавляет более одного столбца.
Например.

ALTER TABLE supplier

  ADD (supplier_name char(50),

       city char(45));

Этот SQL ALTER TABLE пример добавит два столбца: supplier_name как поле char(50) и city как поле char(45) в таблицу supplier .

Изменить столбец в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для изменения столбца в существующей таблице.

Для Oracle, MySQL, MariaDB.

ALTER TABLE table_name
MODIFY column_name column_type;

Для SQL Server.

ALTER TABLE table_name
ALTER COLUMN column_name column_type;

Для PostgreSQL.

ALTER TABLE table_name
ALTER COLUMN column_name TYPE column_definition;

Пример

Давайте посмотрим, как изменить столбец с именем supplier_name, используя команду ALTER TABLE. Обратите внимание, что в большинстве баз данных Синтаксис немного отличается.
Для Oracle.

  ALTER TABLE supplier

  MODIFY supplier_name char(100) NOT NULL;

Для MySQL и MariaDB.

  ALTER TABLE supplier

  MODIFY supplier_name VARCHAR(100) NOT NULL;

Для SQL Server.

  ALTER TABLE supplier

  ALTER COLUMN supplier_name VARCHAR(100) NOT NULL;

Для PostgreSQL.

  ALTER TABLE supplier

  ALTER COLUMN supplier_name TYPE CHAR(100),

  ALTER COLUMN supplier_name SET NOT NULL;

Изменить несколько столбцов в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для изменения нескольких столбцов в существующей таблице.
Для Oracle.

ALTER TABLE table_name
MODIFY (column_1 column_type,
column_2 column_type,

column_n column_type);

Для MySQL и MariaDB.

ALTER TABLE table_name
MODIFY column_1 column_definition
[ FIRST | AFTER column_name ],
MODIFY column_2 column_definition
[ FIRST | AFTER column_name ],

;

Для PostgreSQL.

ALTER TABLE table_name
ALTER COLUMN column_name TYPE column_definition,
ALTER COLUMN column_name TYPE column_definition,

;

Пример

Давайте рассмотрим пример, который использует ALTER TABLE для изменения более одного столбца. В этом примере мы изменим два столбца с именами supplier_name и city.

Для Oracle.

ALTER TABLE supplier

  MODIFY (supplier_name char(100) NOT NULL,

          city char(75));

Для MySQL и MariaDB.

  ALTER TABLE supplier

  MODIFY supplier_name VARCHAR(100) NOT NULL,

  MODIFY city VARCHAR(75);

Для PostgreSQL.

  ALTER TABLE supplier

  ALTER COLUMN supplier_name TYPE CHAR(100),

  ALTER COLUMN supplier_name SET NOT NULL,

  ALTER COLUMN city TYPE CHAR(75);

Удалить столбец в таблиц

Синтаксис

Синтаксис ALTER TABLE для удаления столбца в существующей таблице.

ALTER TABLE table_name
DROP COLUMN column_name;

Пример

Давайте посмотрим на пример, который удаляет столбец из таблицы.
Например.

  ALTER TABLE supplier

  DROP COLUMN supplier_name;

Этот SQL пример ALTER TABLE удалит столбец supplier_name из таблицы supplier.

Переименовать столбец в таблице

Синтаксис

Синтаксис SQL ALTER TABLE для переименования столбца в существующей таблице.

Для Oracle и PostgreSQL.

ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename ‘table_name.old_column’, ‘new_name’, ‘COLUMN’;

Для MySQL и MariaDB.

ALTER TABLE table_name
CHANGE COLUMN old_name TO new_name;

Пример

Давайте рассмотрим пример, который переименовывает столбец в таблице supplier из supplier_name в sname.

Для Oracle (9i Rel2 и выше) и PostgreSQL.

ALTER TABLE supplier

  RENAME COLUMN supplier_name TO sname;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename ‘supplier.supplier_name’, ‘sname’, ‘COLUMN’;

Для MySQL и MariaDB.

ALTER TABLE supplier

  CHANGE COLUMN supplier_name sname VARCHAR(100);

В MySQL и MariaDB вы должны указать тип данных столбца при его переименовании.

Переименовать таблицу

Синтаксис

Синтаксис SQL ALTER TABLE для переименования таблицы.

Для Oracle, MySQL, MariaDB, PostgreSQL и SQLite.

ALTER TABLE table_name
RENAME TO new_table_name;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename ‘table_name’, ‘new_table_name’;

Пример

Давайте рассмотрим пример, который переименовывает таблицу supplier в новое имя vendor.
Для Oracle, MySQL, MariaDB, PostgreSQL и SQLite.

ALTER TABLE supplier

  RENAME TO vendor;

Для SQL Server (с использованием хранимой процедуры sp_rename).

sp_rename ‘supplier’, ‘vendor’;

Практическое упражнение № 1

На основании приведенной ниже таблицы departments переименуйте таблицу departments в depts.

CREATE TABLE departments

( department_id int NOT NULL,

  department_name char(50) NOT NULL,

  CONSTRAINT departments_pk PRIMARY KEY (department_id)

);

Решение для упражнения № 1

Следующий SQL оператор ALTER TABLE переименует таблицу departments в depts.

ALTER TABLE departments

  RENAME TO depts;

Практическое упражнение № 2

На основе приведенной ниже таблицы employees добавьте столбец с именем salary, который имеет тип данных int.

CREATE TABLE employees

( employee_number int NOT NULL,

  employee_name char(50) NOT NULL,

  department_id int,

  CONSTRAINT employees_pk PRIMARY KEY (employee_number)

);

Решение для упражнения № 2

Следующий SQL оператор ALTER TABLE добавит столбец salary в таблицу employees.

ALTER TABLE employees

  ADD salary int;

Практическое упражнение № 3

На основе приведенной ниже таблицы customers добавьте два столбца — один столбец с именем contact_name, который является типом данных char(50), и один столбец с именем last_contacted, у которого тип данных date.

CREATE TABLE customers

( customer_id int NOT NULL,

  customer_name char(50) NOT NULL,

  address char(50),

  city char(50),

  state char(25),

  zip_code char(10),

  CONSTRAINT customers_pk PRIMARY KEY (customer_id)

);

Решение для упражнения № 3

Следующий SQL оператор ALTER TABLE добавит столбцы contact_name и last_contacted в таблицу customers.

ALTER TABLE customers

  ADD (contact_name char(50),

       last_contacted date);

Практическое упражнение № 4

На основании приведенной ниже таблицы employees измените столбец employee_name на тип данных char(75).

CREATE TABLE employees

( employee_number int NOT NULL,

  employee_name char(50) NOT NULL,

  department_id int,

  CONSTRAINT employees_pk PRIMARY KEY (employee_number)

);

Решение для упражнения № 4

Следующий SQL оператор ALTER TABLE изменит тип данных для столбца employee_name на char(75).

ALTER TABLE employees

  MODIFY employee_name char(75);

Практическое упражнение № 5

На основе приведенной ниже таблицы customer измените столбец customer_name, чтобы он не допускал значений NULL, и измените столбец state на тип данных char(2).

CREATE TABLE customers

( customer_id int NOT NULL,

  customer_name char(50),

  address char(50),

  city char(50),

  state char(25),

  zip_code char(10),

  CONSTRAINT customers_pk PRIMARY KEY (customer_id)

);

Решение для упражнения № 5

Следующий SQL оператор ALTER TABLE изменит столбцы customer_name и state соответственно в таблице customers.

ALTER TABLE customers

  MODIFY (customer_name char(50) NOT NULL,

          state char(2));

Практическое упражнение № 6

На основе приведенной ниже таблицы employees удалите столбец salary.

CREATE TABLE employees

( employee_number int NOT NULL,

  employee_name char(50) NOT NULL,

  department_id int,

  salary int,

  CONSTRAINT employees_pk PRIMARY KEY (employee_number)

);

Решение для упражнения № 6

Следующий SQL оператор ALTER TABLE удалит столбец salary из таблицы employees.

ALTER TABLE employees

  DROP COLUMN salary;

Практическое упражнение № 7

На основании приведенной ниже таблицы departments переименуйте столбец department_name в имя_депта.

CREATE TABLE departments

( department_id int NOT NULL,

  department_name char(50) NOT NULL,

  CONSTRAINT departments_pk PRIMARY KEY (department_id)

);

Решение для упражнения №

Следующий SQL оператор ALTER TABLE переименует столбец department_name в dept_name в таблице departments.

ALTER TABLE departments

  RENAME COLUMN department_name to dept_name;

Узнайте как использовать оператор ALTER TABLE в распространенных БД:

  • ALTER TABLE Oracle PL/SQL
  • ALTER TABLE SQL Server
  • ALTER TABLE MySQL
  • ALTER TABLE PostgreSQL
  • ALTER TABLE MariaDB
  • ALTER TABLE SQLite

Вопрос:

У нас есть большая база данных Oracle со многими таблицами. Есть ли способ, которым я могу выполнить запрос или поиск, чтобы найти, есть ли таблицы с определенными именами столбцов?

IE показать мне все таблицы, которые имеют столбцы: id, fname, lname, address

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

Лучший ответ:

Чтобы найти все таблицы с определенным столбцом:

select owner, table_name from all_tab_columns where column_name = 'ID';

Чтобы найти таблицы, в которых есть все или все из 4 столбцов:

select owner, table_name, column_name
from all_tab_columns
where column_name in ('ID', 'FNAME', 'LNAME', 'ADDRESS');

Чтобы найти таблицы, в которых есть все 4 столбца (без них отсутствует):

select owner, table_name
from all_tab_columns
where column_name in ('ID', 'FNAME', 'LNAME', 'ADDRESS')
group by owner, table_name
having count(*) = 4;

Ответ №1

Данные, которые вы хотите, находятся в таблице метаданных “cols”:

SELECT * FROM COLS WHERE COLUMN_NAME = 'id'

Это даст вам список таблиц, в которых есть все нужные столбцы:

select distinct
C1.TABLE_NAME
from
cols c1
inner join
cols c2
on C1.TABLE_NAME = C2.TABLE_NAME
inner join
cols c3
on C2.TABLE_NAME = C3.TABLE_NAME
inner join
cols c4
on C3.TABLE_NAME = C4.TABLE_NAME
inner join
tab t
on T.TNAME = C1.TABLE_NAME
where T.TABTYPE = 'TABLE' --could be 'VIEW' if you wanted
and upper(C1.COLUMN_NAME) like upper('%id%')
and upper(C2.COLUMN_NAME) like upper('%fname%')
and upper(C3.COLUMN_NAME) like upper('%lname%')
and upper(C4.COLUMN_NAME) like upper('%address%')

Чтобы сделать это в другой схеме, просто укажите схему перед таблицей, как в

SELECT * FROM SCHEMA1.COLS WHERE COLUMN_NAME LIKE '%ID%';

Если вы хотите совместить поиск многих схем с одним результатом вывода, вы можете сделать это:

SELECT DISTINCT
'SCHEMA1' AS SCHEMA_NAME
,TABLE_NAME
FROM SCHEMA1.COLS
WHERE COLUMN_NAME LIKE '%ID%'
UNION
SELECT DISTINCT
'SCHEMA2' AS SCHEMA_NAME
,TABLE_NAME
FROM SCHEMA2.COLS
WHERE COLUMN_NAME LIKE '%ID%'

Ответ №2

Чтобы найти имя столбца, используйте приведенный ниже запрос, если вы точно знаете имя столбца:

select owner,table_name from all_tab_columns where upper(column_name) =upper('keyword');

Чтобы найти имя столбца, если вы не знаете точное использование столбцов ниже:

select owner,table_name from all_tab_columns where upper(column_name) like upper('%keyword%');

Ответ №3

выберите table_name из dba_tab_columns где column_name = ‘THE_COLUMN_YOU_LOOK_FOR’;

Ответ №4

Вот один из них, который мы сохранили для findcol.sql, чтобы мы могли легко запускать его из SQLPlus

set verify off
clear break
accept colnam prompt 'Enter Column Name (or part of): '
set wrap off
select distinct table_name,
column_name,
data_type || ' (' ||
decode(data_type,'LONG',null,'LONG RAW',null,
'BLOB',null,'CLOB',null,'NUMBER',
decode(data_precision,null,to_char(data_length),
data_precision||','||data_scale
), data_length
) || ')' data_type
from all_tab_columns
where column_name like ('%' || upper('&colnam') || '%');
set verify on

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

SELECT tablename.tablespacename FROM usertables; 

Сортировка результатов запроса

Для сортировки результатов запроса вы можете использовать предложение ORDER BY. В приведенном запросе результаты сортируются по имени таблиц:

SELECT tablename.tablespacename FROM user_tables ORDER BY tablename;

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

ORDER BY tablename DESC;

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

SELECT tablename.tablespacename FROM user_tables ORDER BY tablespacename DESC tablename ASC;

Встроенная функция Oracle UPPER позволяет производить сортировку с учетом регистра символов. Например:

SELECT table_name. tablespace_name

FROM user_tables

ORDER BY UPPER(table_name);

 Для симметрии Oracle 12C, 18C также имеет встроенную функцию LOWER. Функция LOWER преобразует символы строки к нижнему регистру, a UPPER — к верхнему.

Вас заинтересует / Intresting for you:

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Этот плагин не поддерживается как исправить
  • Как найти количество движения фотона
  • Как найти глину для керамики
  • Как найти калиевую селитру
  • Как найти видео про фото

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии