List column names of sql table
I know it is basics, just slipped out of my mind, How do we list or print the columns names of table in sql server 2000.
thanks,
Code Snippet
SELECT C.Table_Catalog DB,C.Table_Schema, C.Table_Name, Column_Name, Data_Type
FROM Information_Schema.Columns C JOIN Information_Schema.Tables T
ON C.table_name = T.table_name
WHERE Table_Type = 'BASE TABLE'
AND DB = 'DatabaseName'
Similar Messages
-
Set the column name of a table in a list box
is there any code to set the column name of a table in a list box at oracle devloper 6i?
pls help.I dont want to go for pl/sql . It should work any table.You want Dynamic SQL without using PL/SQL? Tricky. I'm sure there's a possible way using some very complex and convoluted XML functionality of SQL but in reality you are asking for something that isn't natural to SQL queries, especially if you are expecting a dynamic number of columns to be produced for each row of data. SQL expects a table structure, including output formats, to be a defined number of columns with any number of rows, not a defined number of rows with any number of columns.
Perhaps if you explain why you need this sort of functionality then we may be able to offer a better solution.
;) -
List of common column name in a table
I had an urgent request to check for common column name in a table. The table that I can currently have select privelge is ALL_TAB_COLUMNS. I need to list all column_name, table_name, and owner. Thanks.
SQL> sho user
USER is "SCOTT"
SQL> select * from tab
2 where tname like '%EMP';
TNAME TABTYPE CLUSTERID
EMP TABLE
V_EMP VIEW
SQL> select distinct owner, table_name
2 from all_tab_columns
3 where table_name like '%EMP';
OWNER TABLE_NAME
SCOTT EMP
SCOTT V_EMP
SYS EXU7COL_TEMP
SYS EXU8COL_TEMP
SQL> -
How can I list all the column names of a table by programming?
Hi,
Now I want to write an function which has the following features:
Firstly, The function was given a parameter as table name.
Then, it will lists all the columns names of the table.
e.g
table: person
---firstName------lastName----+
Michale Jackson
We can get the columns 'firstname' and 'lastName' by calling the function with table name 'person'.
And I also wonder that where I can get reference book or any other materials?
Thanks.
Edited by: wenjing wang on Feb 15, 2008 6:42 AM
Edited by: wenjing wang on Feb 15, 2008 6:57 AMhi,
hope the below code helps u. Just take the headee which contains the field name and split it like below and compare it with the field name u want here 'last name'.
here,
'First name' will be in wt_filedata1 and remaining field names in wt_filedata2, so 'do' continues.
c_tab must be the separator, either , or + or tab etc..
CODE:
read table person into wl_header index 1.
do.
split wl_header at c_tab into: wt_filedata1 wt_filedata2.
if wt_filedata1 <> 'lastname'.
cnt1 = cnt1 + 1.
wl_header = wt_filedata2.
else.
exit.
endif.
enddo.
Please reward if it is useful.
regards,
sri -
How to know primary key column name form a table name in sql query
Suppose I only know the table name. How to get its primary key column name from the table name?
ThanksViews don't have primary keys though their underlying tables might. You'd need to pick apart the view to determine where it's columns are coming from.
You can select the text of the view in question from user_views. -
How to rename a column name in a table? Thanks first!
I tried to drop a column age from table student by writing the
following in the sql plus environment as :
SQL> alter table student drop column age ;
but I found the following error
ORA-00905: 缺少关键字 (Lack of Key word)
I have oracle enterprise edition 8.0.5 installed at windows 2000
thank you
And I want to know how to rename a column name in a table?
thanksIn Oracle 8i, your syntax would have worked. However, if I
recall correctly, in Oracle 8.0, you can't rename or drop a
column directly. One way to get around that problem is to
create another table based on a select statement from your
original table, providing the new column name as an alias if you
want to change the column name, or omitting that column from the
select statement if you just want to drop it. Then drop the
original table. Then re-create the original table based on a
select statement from the other table. Then you can drop the
other table. Here is an example:
CREATE TABLE temporary_table_name
AS
SELECT age AS new_column_name,
other_columns
FROM student
DROP TABLE student
CREATE TABLE student
AS
SELECT *
FROM temporary_table_name
DROP TABLE temporary_table_name
Something that you need to consider before doing this is
dependencies. You need to make a list of all your dependecies
before you do this, so that you can re-create them afterwards.
If there are a lot of them, it might be worthwhile to do
something else, like creating a view with an alias for the
column or just providing an alias in a select. It depends on
what you need the different column name for. -
How to select even the column names of a table?
Hello All,
Is there a way to select even the column names of a table in the select statement?
My select from a table (say X) is in a SQL* Plus script that gets invoked by application tier and displays data in the application tier window. User's can then copy the data into a spreadsheet and do their processing. However, I need to give them the column names too along with the data.
Thanks,
ChiruIf there is a middle tier that is selecting and
displaying the data, and that's what the users are
copying from, the middle tier would have to address
its presentation of the data to allow users to
include column names. If this is a common task, the
application should probably be modified to give users
the option of downloading the data in a spreadsheet
directly rather than forcing them to copy and paste
data.Thanks for the reply.
The users don't have to copy paste. The application tier has an options in the "Tools" menu item which allows them to copy the entire output to a file (in my case a txt file which is a pipe delimited). Then they have to do text to columns to get the data into each column of the spreadsheet. I could have directly called the stored procedures from the application tier and created ".csv" files and FTP'd them to the user's folders. However, I am having to go this round about because, I am not getting enough support from the LAN team in FTP'ing etc.
OK I'll think of another workaround.
Thanks,
Chiru -
What is the use of Position Column Name in USER_CONS_COLUMNS Table
Please let me know the purpose of POSITION Column Name in USER_CONS_COLUMNS Table.
Example :
Created this below Table having two constraints 1.Primary Key 2.Check Constraint
CREATE TABLE A(ID NUMBER PRIMARY KEY,NAME VARCHAR2(30),SAL NUMBER CHECK (SAL > 0))
When i execute the below query
SELECT POSITION,CONSTRAINT_NAME FROM USER_CONS_COLUMNS WHERE TABLE_NAME = 'A'
it displays the data :
POSITION CONSTRAINT_NAME
1 SYS_C005488
SYS_C005487
Only for the first record it displays the POSITION but not for the second row.
Kindly help me on this.SQL> CREATE TABLE A(
2 ID1 NUMBER
3 , ID2 NUMBER
4 , NAME VARCHAR2(30)
5 , SAL NUMBER CONSTRAINT A_SAL_POSITIVE CHECK (SAL > 0)
6 , CONSTRAINT A_PRIMARY_KEY PRIMARY KEY (ID1, ID2)
7 )
8 /
Table created.
SQL> SELECT CONSTRAINT_NAME, POSITION, COLUMN_NAME
2 FROM USER_CONS_COLUMNS
3 WHERE TABLE_NAME = 'A'
4 ORDER BY CONSTRAINT_NAME, POSITION
5 /
CONSTRAINT_NAME POSITION COLUMN_NAME
A_PRIMARY_KEY 1 ID1
A_PRIMARY_KEY 2 ID2
A_SAL_POSITIVE SALA primary key constraint can have multiple columns - the position shows the order the columns are in the primary key definition (and thus also in the pk supporting index.)
A check constraint does not have any such ordering of the columns involved, so therefore position is null. -
Hi Guys,
I want to rename the column name of a table. Lets say I have table employee:
SQL> desc emp;
Name Null? Type
EMPNO NOT NULL NUMBER(4)
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
STARS VARCHAR2(8)
I want to change the name of the cloumn name of ENAME to EMPNAME so that structure looks like this:
SQL> desc emp;
Name Null? Type
EMPNO NOT NULL NUMBER(4)
EMPNAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2)
STARS VARCHAR2(8)
Can anyone tell me any statement or way to solve this problem. Please keep in mind that I will not delete the table or create another column name of EMPNAME and copy the data from ENAME to EMPNAME.
Regds,
DebabrataALTER TABLE DEPT2 RENAME COLUMN ENAME TO EMPNAME
Regards,
Raj -
Finding a column name from all tables
i have 85 tables in my user, i forget a column name and its table name. how to find that particular column amongst all tables i have.
hi
You can use User_tab_columns or All_tab_columns
SQL>Select Table_Name,Column_Name From user_tab_columns
where lower(table_name) like '%emp%' or
lower(column_name) like '%dept%'
Khurram Siddiqui
[email protected]
Message was edited by:
pcbyte12 -
Display column name in sql*plus
Hi,
How to display full column name?
there are n no of tables, i have to query the tables but i want the column name to be displayed fully. for example
SQL> desc control
Name Null? Type
CODE NOT NULL VARCHAR2(255)
LOAD_PERIOD_START_DATETIME DATE
SQL> select code,load_period_start_datetime from control;
CODE
LOAD_PERIOD
AAA
01-AUG-2007
SQL> col load_period_start_datetime format a30
SQL> /
CODE
LOAD_PERIOD_START_DATETIME
AAA
01-AUG-2007
SQL>
As it is only one column i can set with 'col <column_name> format a 30'
if there are n no of coumns from n no tables then how do i get the full column name?
Please help me.
ThanksHi,
you can get all the column's for a TABLE from all_tab_columns this VIEW, why dont you write as script which will generate the commands.
Could you please tell us why do you want to display the compete COLUMN NAME in SQL plus.
Thanks -
Retrieve column names of a table!!
Hi all,
I want to retrieve column names of a table 'test' whose values are null
For ex:
select * from test
will give the results as
column_1 column_2 column_3 column_4
111
lets consider the case that the table has only one record.
accordingly we have to get column_2 ,column_3 and column_4 as the result.
i tried dynamic 'execute immediate' statement and tried to extract in one single execute immediate statement but i was not able to accomplish because of the multiple columns.
is it possible without using a pl/sql function or procedure??Check this:
SQL> INSERT INTO my_Test values('ABCD',NULL,NULL);
1 row created.
SQL> COMMIT;
Commit complete.
SQL> select * from my_Test;
COL1 C COL3
ABCD
SQL> declare
2 CURSOR C1 IS SELECT column_name FROM all_tab_cols WHERE table_name = 'MY_TEST';
3 v_sql VARCHAR2(10000) := NULL;
4 my_null_col_list VARCHAR2(32767) := NULL;
5 my_cnt NUMBER := 0;
6 BEGIN
7 FOR I in C1 LOOP
8 v_sql := 'SELECT COUNT(*) FROM my_test WHERE '||I.column_name ||' IS NULL';
9 execute immediate v_sql INTO my_cnt;
10 IF (my_cnt > 0) THEN
11 my_null_col_list := my_null_Col_list||','||I.column_name;
12 END IF;
13 END LOOP;
14 my_null_col_list := SUBSTR(my_null_col_list,2);
15 dbms_output.put_line('Columns that have null values for table my_Test are:'||my_null_col_list);
16 END;
17 /
Columns that have null values for table my_Test are:COL2,COL3
PL/SQL procedure successfully completed.
SQL> desc my_test;
Name Null? Type
COL1 VARCHAR2(10)
COL2 VARCHAR2(1)
COL3 VARCHAR2(10)
SQL> -
Column names from another table
Hi All,
I have a scenario where i need to get names of a column from another table
for eg,
Table EMP
EmpNo EmpName EmpContact EmpPhone
1 xyz [email protected] 345
2 abc [email protected] 897
3 ttp [email protected] 345
The column names of this table can be configurable from some other place and its value is stored in another table like
Table Config (2 Columns)
Column_Name Value
EmpName First name
EmpContact Email
EmpPhone Mobile
Now i want to fetch the values from Emp table but with column headers that are changed and have a value in Config table.
If a column name is not there in config table then the original column name should come.
As shown below
EmpNo First name Email Mobile
1 xyz [email protected] 345
2 abc [email protected] 897
3 ttp [email protected] 345
Another eg, If EmpName is not changed and entered in second table , then i want to have the same name as the original EMP table has as shown below.
EmpNo EmpName Email Mobile
1 xyz [email protected] 345
2 abc [email protected] 897
3 ttp [email protected] 345
In other words something like this,
select empno,
EmpName as (select value from config where column_name=EmpName),
EmpContact as (select value from config where column_name=Empcontact),
EmpPhone as (select value from config where column_name=EmpPhone)
From EMP
Can some one please help me in providing a solution for this.
Edited by: 941386 on May 30, 2013 6:20 AMUnfortunately, I think this is a job for dynamic sql ...
Build your "query" first:
(note this won't work "as is", fix the syntax - but you get the idea.)
lv_str := 'select empno,
EmpName as ' || (select value from config where column_name=EmpName) || ',
EmpContact as ' || (select value from config where column_name=Empcontact) || ',
EmpPhone as ' || (select value from config where column_name=EmpPhone) || '
From EMP;';
execute immediate lv_str;Not sure if there's a better way or not.
Only other way I can think of is to leverage the way UNION [ALL] works.
So the following query:
select a, b, c from dual
union all
select d, e, f from dual
/returns data in columns "named" : "a, b, c"
Effectively renaming columns d, e, f. You just need to turn your data on edge in that first query, then throw out the rows (I don't know how to get it to work, but perhaps somebody else does?)
[edit]
another thought is create a view over top of the table, query that view, then drop the view :P
that would work nicely - avoid the dynamic SQL. shrug
[edit]
Edited by: Greg.Spall on May 30, 2013 9:37 AM -
Difficulty in using a variable to pass a list of names between 2 tables
Hi All,
I am trying to pass a list of names from one table as a variable to another table and trying to find the Highest level they exist at in the hierarchy. I am having some troubles with the variable and need some guidence and also if this should be a procedure or not.
this is what i have now :
Variable man_name Varchar;
exec :man_name = (Select full_name from direct_manager_report)
UPDATE direct_manager_report
Set Manager_level_number =
(Select 'Manager_Level_0' from manager_hierarchy where level_0_manager_name = man_name
UNION
Select 'Manager_Level_1' from manager_hierarchy where level_0_manager_name < > man_name AND level_1_manager_name = man_name
UNION
Select 'Manager_Level_2' from manager_hierarchy where level_1_manager_name < > man_name AND level_2_manager_name = man_name
UNION
Select 'Manager_Level_3' from manager_hierarchy where level_2_manager_name < > man_name AND level_3_manager_name = man_name
Where full_name = man_name;
Let me know what modifications have to be done for this the variable to get the name from table 1 and find the manager level from table 2 and populate it back in table 1.
Any help is appreciated.
ThanksFrank Kulash wrote:
Hi,Thanks for your reply. I am sorry for not providing enough information.
What's wrong with what you have now? I want to pass the manager name (about 2000) from direct_manager_report to the variable which i pass to manager_hierarchy table to find the highest level for each manager
If it doesn't give the right results, then how is anyone except you to know what the right results are?
Variable man_name Varchar;
exec :man_name = (Select full_name from direct_manager_report)Does that really work for you?No thats why i said this is what i have and i am trying to see the best to past the list of manager names to get the level number.
UPDATE direct_manager_report
Set Manager_level_number =
(Select 'Manager_Level_0' from manager_hierarchy where level_0_manager_name = man_name
UNION
Select 'Manager_Level_1' from manager_hierarchy where level_0_manager_name < > man_name AND level_1_manager_name = man_nameIt looks like something is missing on the line above. Did you mean "level_0_manager_name != man_name"?
This site doesn't like to display the <> inequality operator. Always use the other (equivalent) inequality operator, !-, when posting here.
UNION
Select 'Manager_Level_2' from manager_hierarchy where level_1_manager_name < > man_name AND level_2_manager_name = man_name
UNION
Select 'Manager_Level_3' from manager_hierarchy where level_2_manager_name < > man_name AND level_3_manager_name = man_name
Where full_name = man_name;Are you sure the UNION will never return more than 1 row?
Let me know what modifications have to be done for this the variable to get the name from table 1 and find the manager level from table 2 and populate it back in table 1.Whenever you have a problem, post a little sample data (CREATE TABLE and INSERT statements) and the results you want from that data (in this case, the contents of table1 after everything is finished).
See the forum FAQ {message:id=9360002}Sorry did not realize the missing !. Yes the union will always return one record for each manager name passed. I have tested the select part which hard coding the manager name and it does update the level number correctly. but i am struggling with passing a large list of values as a variable.
This is the output i am looking for in the direct manager report table is :
Manager Name | Manager Level Number
ABC Manager Level 0
XYZ Manager Level 1
This is the structure of the manager hierarchy:
Manager Level 0 Manager Level 1 Manager Level 2...Manager Level 14
ABC ABC ABC ABC
ABC XYZ XYZ XYZ
Let me try the below but hopefully i am more clear on the requirement now.
>
You may want something like this
MERGE INTO direct_manager_report dst
USING (
SELECT dmr.full_name
, 'Manager_Level_'
|| MIN ( CASE dmr.full_name
WHEN level_0_manager_name THEN '0'
WHEN level_1_manager_name THEN '1'
WHEN level_2_manager_name THEN '2'
WHEN level_3_manager_name THEN '3'
END
) AS manager_level_number
FROM manager_hierarchy dmr
JOIN manager_hierarchy mh ON dmr.full_name IN ( level_0_manager_name
, level_1_manager_name
, level_2_manager_name
, level_3_manager_name
GROUP BY dmr.full_name
) src
ON ( dst.full_name = src.full_name )
WHEN MATCHED THEN UPDATE
SET dst.manager_level_number = src.manager_level_number
Edited by: user599926 on Jun 4, 2013 9:41 PM -
How to get only column names from different tables as single table columns
Hi All,
I have one requirement in which we want only column names from different tables.
for example :
I have three tables T1 ,T2, T3 having
col1 clo2 clo3 --> T1 ,
col3 col5 ,clo6 --> T2 ,
Clo6 col8 col9 --> T3
columns i want to get only all Column names from all table as single Resultset not any data from that how can i get that empty resultset
because this empty result i want to bind in datagridview(front end) as Empty resultset
Please tell me anyways to do this
Niraj SevalkarIf I understand you want an empty result set, just with metadata. SET FMTONLY do the trick:
SET FMTONLY ON
SELECT Col1, Col2, Col3, ....., Coln
FROM
T1 CROSS JOIN T2 CROSS JOIN T3
SET FMTONLY OFF
Another alternative is to include an imposible contition
SELECT Col1, Col2, Col3, ....., Coln
FROM
T1 CROSS JOIN T2 CROSS JOIN T3
WHERE 1 = 0
If you are using a SqlDataAdapter in your client application. You can use the FillSchema method. the select command may be any select statement that returns the columns you want. Under the covers FillSchema will call SET FMTONLY ON.
If you are using SqlCommand.ExecuteReader you can pass SchemaOnly to CommandBehavior argument. SET FMTONLY ON is called under the covers. Again the select command may be any select statement that returns the columns you want.
"No darás tropezón ni desatino que no te haga adelantar camino" Bernardo Balbuena
Maybe you are looking for
-
The IOS 6 updates for findmy iphone does not work as well as IOS 5 app. It will not let you update your location when you tap the refresh arrow. So tired of it telling me that my iphone is offline when it is never off. The IOS 5 was great and it work
-
[SOLVED] No sound through usb soundcard in Google Chromium
Hi there, Before switching to Arch I had used my external usb soundcard in Ubuntu and Kubuntu which worked almost flawlessly except for no sound through Google Chromium in Kubuntu. I thought this may have been isolated when switching KDE on Arch but
-
Need help setting up a Git server.
Been following this guide. But it is missing a part regarding SSH support. When I add a locale server, IP-based. It gives me some error about line length and access denied. I suspect that it tries to connect with the wrong user, or something. I have
-
Dual head setup (mach64 - ATI Rage Mobility)
hello everyone! I want to use a new extra monitor I got recently, with my laptop, I use aweosme. I have installed: xf86-video-mach64 (recompiled with dri support) mach64-dri (from community) mach64drm (from AUR) https://wiki.archlinux.org/index.php/M
-
The title says it all.