Inserting value in the single column table where the only column is a identity column
Hi,
Following is my table definition:
create table test1 (col1 int primary key identity(1,1))
Now here, the only column col1 in the table is an identity column. Now I want to add explicit values to this column
without SET Identity_Insert test1 On.
How?
You have a fundamental misconception. IDENTITY is not a column; it is a table property and it is totally non-relational. This is a left-over from UNIX file systems, which were built on magnetic tape files. It is a sequential data
model which counts the insertion attempts to get a physical record number. By definition IDENTITY cannot be a valid key; it is not a valid data type (all data types in SQL are NULL-able); keys are a subset of columns in a table.
Have you ever read a single book on RDBMS? You can start with MANGA GUIDE TO DATABASE, it is the clearest intro book I know.
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL
Similar Messages
-
Inserted value too large for column Error
I have this table:
CREATE TABLE SMt_Session
SessionID int NOT NULL ,
SessionUID char (36) NOT NULL ,
UserID int NOT NULL ,
IPAddress varchar2 (15) NOT NULL ,
Created timestamp NOT NULL ,
Accessed timestamp NOT NULL ,
SessionInfo nclob NULL
and this insert from a sp (sp name is SMsp_SessionCreate):
Now := (SYSDATE);
SessionUID := SYS_GUID();
/*create the session in the session table*/
INSERT INTO SMt_Session
( SessionUID ,
UserID ,
IPAddress ,
Created ,
Accessed )
VALUES ( SMsp_SessionCreate.SessionUID ,
SMsp_SessionCreate.UserID ,
SMsp_SessionCreate.IPAddress ,
SMsp_SessionCreate.Now ,
SMsp_SessionCreate.Now );
It looks like the param SessionUID is the one with trouble, but the length of sys_guid() is 32, and my column has 36.
IPAddress is passed to the sp with value '192.168.11.11', so it should fit.
UserID is 1.
I am confused, what is the column with problem ?CREATE OR REPLACE PROCEDURE SMsp_SessionCreate
PartitionID IN INT ,
UserID IN INT ,
IPAddress IN VARCHAR2 ,
SessionID IN OUT INT,
SessionUID IN OUT CHAR,
UserName IN OUT VARCHAR2,
UserFirst IN OUT VARCHAR2,
UserLast IN OUT VARCHAR2,
SupplierID IN OUT INT,
PartitionName IN OUT VARCHAR2,
Expiration IN INT ,
RCT1 OUT GLOBALPKG.RCT1
AS
Now DATE;
SCOPE_IDENTITY_VARIABLE INT;
BEGIN
Now := SYSDATE;
-- the new Session UID
SessionUID := SYS_GUID();
/*Cleanup any old sessions for this user*/
INSERT INTO SMt_Session_History
( UserID ,
IPAddress ,
Created ,
LastAccessed ,
LoggedOut )
SELECT
UserID,
IPAddress,
Created,
Accessed,
TO_DATE(Accessed + (1/24/60 * SMsp_SessionCreate.Expiration))
FROM SMt_Session
WHERE UserID = SMsp_SessionCreate.UserID;
--delete old
DELETE FROM SMt_Session
WHERE UserID = SMsp_SessionCreate.UserID;
/*create the session in the session table*/
INSERT INTO SMt_Session
( SessionUID ,
UserID ,
IPAddress ,
Created ,
Accessed )
VALUES ( SMsp_SessionCreate.SessionUID ,
SMsp_SessionCreate.UserID ,
SMsp_SessionCreate.IPAddress ,
SMsp_SessionCreate.Now ,
SMsp_SessionCreate.Now );
SELECT SMt_Session_SessionID_SEQ.CURRVAL INTO SMsp_SessionCreate.SessionID FROM dual;
--SELECT SMt_Session_SessionID_SEQ.CURRVAL INTO SCOPE_IDENTITY_VARIABLE FROM DUAL;
--get VALUES to return
SELECT u.AccountName INTO SMsp_SessionCreate.UserName FROM SMt_Users u WHERE u.UserID = SMsp_SessionCreate.UserID;
SELECT u.SupplierID INTO SMsp_SessionCreate.SupplierID FROM SMt_Users u WHERE u.UserID = SMsp_SessionCreate.UserID;
SELECT u.FirstName INTO SMsp_SessionCreate.UserFirst FROM SMt_Users u WHERE u.UserID = SMsp_SessionCreate.UserID;
SELECT u.LastName INTO SMsp_SessionCreate.UserLast FROM SMt_Users u WHERE u.UserID = SMsp_SessionCreate.UserID;
BEGIN
FOR REC IN ( SELECT
u.AccountName,
u.SupplierID,
u.FirstName,
u.LastName FROM SMt_Users u
WHERE UserID = SMsp_SessionCreate.UserID
LOOP
SMsp_SessionCreate.UserName := REC.AccountName;
SMsp_SessionCreate.SupplierID := REC.SupplierID;
SMsp_SessionCreate.UserFirst := REC.FirstName;
SMsp_SessionCreate.UserLast := REC.LastName;
END LOOP;
END;
BEGIN
FOR REC IN ( SELECT PartitionName FROM SMt_Partitions
WHERE PartitionID = SMsp_SessionCreate.PartitionID
LOOP
SMsp_SessionCreate.PartitionName := REC.PartitionName;
END LOOP;
END;
/*retrieve all user roles*/
OPEN RCT1 FOR
SELECT RoleID FROM SMt_UserRoles
WHERE UserID = SMsp_SessionCreate.UserID;
END;
this is the exact code of the sp. The table definition is this:
CREATE TABLE SMt_Session
SessionID int NOT NULL ,
SessionUID char (36) NOT NULL ,
UserID int NOT NULL ,
IPAddress varchar2 (15) NOT NULL ,
Created timestamp NOT NULL ,
Accessed timestamp NOT NULL ,
SessionInfo nclob NULL
The sp gets executed with this params:
PARTITIONID := -2;
USERID := 1;
IPADDRESS := '192.168.11.11';
SESSIONID := -1;
SESSIONUID := NULL;
USERNAME := '';
USERFIRST := '';
USERLAST := '';
SUPPLIERID := -1;
PARTITIONNAME := '';
EXPIRATION := 300;
if I ran the code inside the procedure in sql+ (not the procedure), it works. when i call the sp i get the error
inserted value too large for column
at line 48 -
Library Filters: Filter for multiple values in a single column and Wildcards
If you have a multi-value column in a library, can you filter to show only results where two (or more) specific values (terms) are applied? E.g. Year 2014 and Month January? Seems this would be particularly useful for Enterprise Keywords columns.
Similarly, is there any way to filter on one value OR another value in a single column (e.g. Document Type Memo OR Fax)?
Any way to use wildcards in searches (would be REALLY useful in the Title and Name columns when naming conventions have been followed).
I'm guessing the answer is going to be 'move to SharePoint 2013' - if that is the case, please confirm whether all the scenarios mentioned above are catered for.Thanks for your replies !
Is there any other way to achieve this ?
There is 1 InfoObject which has 2 fields Employee and Department.
Employee Department
001 A
001 B
001 C
In the report there should be 1 row for Employee 001 with all the Departments displayed in the same cell separated by commas.
Can this be done in the backend through a ABAP code? -
Inserted value too large for column
Hi,
I have a table (desc below), with only one trigger wich fill the operatcreat, operatmodif, datecreat and datemodif column at insert and update for each row. When I try to insert, I got the following messages :
INSERT INTO tarifclient_element(tarifclient_code,article_code,prix) VALUES('12','087108',3.94);
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01401: inserted value too large for column
SQL> desc tarifclient_element
Name Null? Type
TARIFCLIENT_CODE NOT NULL CHAR(10)
ARTICLE_CODE NOT NULL CHAR(20)
PRIX NUMBER
OPERATCREAT NOT NULL VARCHAR2(30)
OPERATMODIF VARCHAR2(30)
DATECREAT NOT NULL DATE
DATEMODIF DATE
NB : tarifclient_code is an ENABLED fk, article_code is a DISABLED fk. All values exists in both referenced tables.
Any idea ?My trigger is not the problem, I tried to delete it and fill the columns manually and got the same error.
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by allanplumb ():
The SQL you have shown us looks OK
(to me, au moins). However, perhaps the
error is in the trigger which fills in
the two operativ fields. It would execute
at the same time as your insert, near
enough.
-- Allan Plumb<HR></BLOCKQUOTE>
null -
ORA-01401: inserted value too large for column from 9i to 8i
Hi All,
Am trying to get the data from 9.2.0.6.0 to 8.1.7.0.0.
The character sets in both of them are as follows
9i
NLS_NCHAR_CHARACTERSET : AL16UTF16
NLS_CHARACTERSET : AL32UTF8
8i
NLS_NCHAR_CHARACTERSET : UTF8
NLS_CHARACTERSET : UTF8
And the structure of the Table in 9i which am trying to pull is as follows.
SQL> desc xyz
Name Null? Type
PANEL_SITE_ID NOT NULL NUMBER(15)
PANELIST_ID NUMBER
CHECKSUM VARCHAR2(150)
CONTACT_PHONE VARCHAR2(100)
HH_STATUS NUMBER
HH_STATUS_DT DATE
HH_RECRUITMENT_PHONE VARCHAR2(100)
HH_RECRUITMENT_DT DATE
FIRST_NET_USAGE_DT DATE
INSTALL_DT DATE
FNAME VARCHAR2(4000)
LNAME VARCHAR2(4000)
EMAIL_ADDRESS VARCHAR2(200)
EMAIL_VALID NUMBER
PASSWORD VARCHAR2(4000)
And by connecting to one of the 8i schema am running the following script
CREATE TABLE GPMI.GPM_HOUSEHOLDBASE_FRMP AS
SELECT PANEL_SITE_ID,
PANELIST_ID,
LTRIM(RTRIM(CHECKSUM)) CHECKSUM,
LTRIM(RTRIM(CONTACT_PHONE)) CONTACT_PHONE,
HH_STATUS, HH_STATUS_DT,
LTRIM(RTRIM(HH_RECRUITMENT_PHONE)) HH_RECRUITMENT_PHONE,
HH_RECRUITMENT_DT,
FIRST_NET_USAGE_DT,
INSTALL_DT, LTRIM(RTRIM(FNAME)) FNAME,
LTRIM(RTRIM(LNAME)) LNAME,
LTRIM(RTRIM(EMAIL_ADDRESS)) EMAIL_ADDRESS,
EMAIL_VALID,
PASSWORD
FROM [email protected];
Am gettinh the following error.
Can anyone of you fix this one.
PASSWORD
ERROR at line 14:
ORA-01401: inserted value too large for column
Thanks in Advance
SudarshanAdditionally I found this matrix, which explains your problem:
UTF8 (1 to 3 bytes) AL32UTF8 (1 to 4 bytes)
MIN MAX MIN MAX
CHAR 2000 666 2000 500
VARCHAR2 4000 1333 4000 1000 */
For column PASSWORD the maximum length is used (4000). UTF8 uses maximal 3 bytes for a character, while AL32UTF8 may use up to 4 characters. So a column defined in AL32UTF8 may contain characters, which do not fit in a corresponding UTF8 character. -
EXEC SQL Error: ORA-01401: Inserted value too large for column
Getting this SQL Error: ORA-01401: Inserted value too large for column..on an EXEC SQL Insert statement when writing to an
external Oracle DB from SAP.
On further analysis..it appears that this happens to the fields..when the string length matches the field length.
Example: Plant field is defined as char(4) on the SAP side and it is a Varchar2(4) on the Oracle side.
When a value like '1015' is passed thru a variable in the insert statement then this ORA-01401 error pops up.
No error:
- if the value '1015' is passed directly in the insert statement to the external table (or)
- when a value with 3 chars or less(like the first three chars..101) is passed thru a variable defined as 'Plant(4) type c'.
- when using EXEC sql within SAP
- when reading from the external db table
This was working ok until the Oracle Patch P9147110 was installed recently.
Any suggestions !Hello Dvas,
what's the characterset of your external database?
What's the column definition in your external database (byte or character based)?
If you use a characeterset like UTF8 it is possible, that one character needs more than one byte and then you will run into such kind of issues if the definition is too small.
Regards
Stefan -
Snapshot refresh error: ora-01401 inserted value too large for column
I have an error ora-01401 "Inserted value too large for column" when I try to do a refresh on a group at the materialized view site.
My model is 1 master replicating to a readonly materialized view site. I have 2 refresh groups for separate sets of tables. 1 refresh group work fine...the other I got the above error.
I have doubled the rbs and system tablespace without any help thinking that I must be running out of default rollback segment space.
Anyone has this before?The error is related to a field, not to any tablespace. This normaly happens to me when I change the lenght or resolution of a field in the base tables. The structure changes don't "flow" to the materialized view! I must "regenerate" them. Normally droping and creating it again to make them receive the new lenght of that field.
Sometimes, when the field changed is not part of any primary key I have changes directly the field in the materialized view as if it was a normal table.
Hope this helps
Luis -
Getting error ORA-01401: inserted value too large for column
Hello ,
I have Configured the scenario IDOC to JDBC .In the SXMB_MONI am getting the succes message .But in the Adapter Monitor am getting the error message as
ORA-01401: inserted value too large for column and the entries also not inserted in to the table.I hope this is because of the date format only.In Oracle table date field has defined in the format of '01-JAN-2005'.I am also passing the date field in the same format only for INVOICE_DATE and INVOICE_DUE_DATE.Please see the target structure .
<?xml version="1.0" encoding="UTF-8" ?>
- <ns:INVOICE_INFO_MT xmlns:ns="http://sap.com/xi/InvoiceIDoc_Test">
- <Statement>
- <INVOICE_INFO action="INSERT">
- <access>
<INVOICE_ID>0090000303</INVOICE_ID>
<INVOICE_DATE>01-Dec-2005</INVOICE_DATE>
<INVOICE_DUE_DATE>01-Jan-2005</INVOICE_DUE_DATE>
<ORDER_ID>0000000000011852</ORDER_ID>
<ORDER_LINE_NUM>000010</ORDER_LINE_NUM>
<INVOICE_TYPE>LR</INVOICE_TYPE>
<INVOICE_ORGINAL_AMT>10000</INVOICE_ORGINAL_AMT>
<INVOICE_OUTSTANDING_AMT>1000</INVOICE_OUTSTANDING_AMT>
<INTERNAL_USE_FLG>X</INTERNAL_USE_FLG>
<BILLTO>0004000012</BILLTO>
<SHIPTO>40000006</SHIPTO>
<STATUS_ID>O</STATUS_ID>
</access>
</INVOICE_INFO>
</Statement>
</ns:INVOICE_INFO_MT>
Please let me know what are all the possible solution to fix the error and to insert the entries in the table.
Thanks in Advance!Hi muthu,
// inserted value too large for column
When your oracle insertion throws this error, it implies that some value that you are trying to insert into the table is larger than the allocated size.
Just check the format of your table and the respective size of each field on your oracle cleint by using the command,
DESCRIBE <tablename> .
and then verify it with the input. I dont think the problem is with the DATE format because if it is not a valid date format, you would have got on error like
String Literal does not match type
Hope this helps,
Regards,
Bhavesh -
Sqlldr ORA-01401: inserted value too large for column
export nls_characterset
WE8ISO8859P1
import nls_characterset
AL32UTF8
Here is how my control file looks like
LOAD DATA
INFILE 'db_service.dat'
INTO TABLE DB_SERVICE
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
APPS_ID CHAR NULLIF (APPS_ID=BLANKS)
, LCR_CODE CHAR NULLIF (LCR_CODE=BLANKS)
, SERVICE_ID CHAR NULLIF (SERVICE_ID=BLANKS)
, STARTTIME CHAR NULLIF (STARTTIME=BLANKS)
, ENDTIME CHAR NULLIF (ENDTIME=BLANKS)
, ROUTE_CODE_LEGA CHAR NULLIF (ROUTE_CODE_LEGA=BLANKS)
, ROUTE_CODE_LEGB CHAR NULLIF (ROUTE_CODE_LEGB=BLANKS)
, ACTIVE_DATE DATE "DD-MON-YYYY HH24:MI:SS" NULLIF (ACTIVE_DATE=BLANKS)
, TERMINATE_DATE DATE "DD-MON-YYYY HH24:MI:SS" NULLIF (TERMINATE_DATE=BLANKS)
, CREATE_ON DATE "DD-MON-YYYY HH24:MI:SS" NULLIF (CREATE_ON=BLANKS)
, CREATE_BY CHAR NULLIF (CREATE_BY=BLANKS)
command line used
sqlldr userid=prod@webdevelopment control=D:\oracle\useful-oracle\dba\sqlldr\route_mgmt\control_20080813.ctl data=D:\oracle\useful-oracle\dba\sqlldr\route_mgmt\export_20080813.csv direct=true log=D:\oracle\useful-oracle\dba\sqlldr\route_mgmt\export_20080813.log
but I always encounter
ORA-01401: inserted value too large for column
so how should I resolve this issue?
thankshi
ORA-01401
ORA-01401: inserted value too large for column
Cause: The value entered is larger than the maximum width defined for the column.
Action: Enter a value smaller than the column width or use the MODIFY option with ALTER TABLE to expand the column width.
check out this link from burleson ....
http://www.dba-oracle.com/sf_ora_01401_inserted_value_too_large_for_column.htm
hope this helps
CHeers -
Inserted value too large for column error while scheduling a job
Hi Everyone,
I am trying to schedule a PL SQL script as a job in my Oracle 10g installed and running on Windows XP.
While trying to Submit the job I get the error as "Inserted value too large for column:" followed by my entire code. The code is correct - complies and runs in Oracle ApEx's SQL Workshop.
The size of my code is 4136 character, 4348 bytes and 107 lines long. It is a code that sends an e-mail and has a +utl_smtp.write_data([Lots of HTML])+
There is no insert statement in the code whatsoever, the code only queries the database for data...
Any idea as to why I might be getting this error??
Thanks in advance
SidThe size of my code is 4136 character, 4348 bytes and 107 lines long. It is a code that sends an e-mail and has a utl_smtp.write_data(Lots of HTML)SQL variable has maximum size of 4000
-
'ORA-01401 inserted value too large for column' - 9i
I am migrating a java application from 8i to 9i. The application is writing data to a oracle 8i database without any problem.
When the underlying database source is switched to oracle 9i database(same databaseschema as 8i) by pointing to 9i instance , the application is
encountering the error: 'ORA-01401 inserted value too large for column' when trying to insert a particular field. The fileld is declared as varchar2(400) in the both the database.
The debug output from application also shows that the column data being inserted as 10 characters.The insert statement from SQLPLUS works fine. So it's looks like an issue with the JDBC driver for the 9i server. I am wondering if anyone has observed such strange behavior.
Thanks
VijayVijay,
Are you using OCI driver ? There is a known issue with OCI driver when using setFixedCHAR before an INSERT statement. This problem only happens with a string of length zero. There is no known issue with THIN Driver. This is fixed in Oracle9i Release 2.
regards
Debu Panda
Oracle -
Exporting Page fails with ORA-1401 inserted value too large for column
Hi Everyone,
I have a client what is getting the following error when
attempting to export a page using pageexp.cmd. A simple page
works for them but there main page does not. Here is the error:
Extracting Portal Page Data for Export...
begin
ERROR at line 1:
ORA-01401: inserted value too large for column
ORA-06512: at "PORTAL30.WWUTL_POB_EXPORT", line 660
ORA-06512: at "PORTAL30.WWUTL_POB_EXPORT", line 889
ORA-06512: at line 5
Has anyone seen this before?
Is there any way we can narrow down why this occurs?
There is no logging on this export option and the stored
procedures used are wrapped.
Any ideas?
Thanks
Oracle Portal Version: 3.0.9.8.0we had this problem.
We talked to some oracle person who said some portlets on a page had trouble exporting.
Sure enough after we deleted all the portlets (one at a time to determine which one was giving us the problem. Turned out none of ours worked) the page exported and imported just fine.
Hopefully this is being worked on... -
ORA-1401: inserted value too large for column
Some versions (of Oracle 9i) insert a truncated string, newer versions (9.2.0.6.5) issue an error message and donât insert anything.
ORA-1401: inserted value too large for column
We are aware of a 2000-character limit on literal strings (might be a byte limit instead of character) but you could always use concatenation to build up a longer string 2000 at a time. But this is rejected if the field is nvarchar2 and wider than 1000 (characters).
Using a function, you can insert 2000 characters. For example, lpad(âXâ, 2000, âXâ) will go in. But this will not:
âXXXXXXXXXXXXXXXXXXXXXXXXXXâ
||âXXXXXXXXXXXXXXXXXXXXXXXXXâ
. . . to >1000 characters.
If anyone knows anything about this, we would appreciate hearing from you.we had this problem.
We talked to some oracle person who said some portlets on a page had trouble exporting.
Sure enough after we deleted all the portlets (one at a time to determine which one was giving us the problem. Turned out none of ours worked) the page exported and imported just fine.
Hopefully this is being worked on... -
Hi all,
In my SQL Server 2012 Management Studio (SSMS2012), I tried to create a Database (MacLochainnsDB) and a dbo Table (marvel). then I wanted insert 8 VALUES into the Table by using the following code:
USE master
IF EXISTS
(SELECT 1
FROM sys.databases
WHERE name = 'MacLochlainnsDB')
DROP DATABASE MacLochlainnsDB
GO
CREATE DATABASE MacLochlainnsDB
GO
CREATE TABLE [dbo].[marvel] (
[avenger_name] [char] (30) NULL)
INSERT INTO marvel
(avenger_name)
VALUES
('Hulk', 1),
('Iron Man', 2),
('Black Widow', 3),
('Thor', 4),
('Captain America', 5),
('Hawkeye', 6),
('Winter Soldier', 7),
('Iron Patriot', 8)
I got the following error Message:
Msg 110, Level 15, State 1, Line 5
There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.
How can I correct this problem?
Please kindly help and advise.
Thanks in advance,
Scott Chang
P. S.
The reason I tried to create the Database, dbo Table, and then to insert the VALUES is to learn the following thing:
You can query the entire node tree with the following xquery statement because it looks for the occurrence of any node with the /* search string:
DECLARE @x xml;
SET @x = N'<marvel>
<avenger_name>Captain America</avenger_name>
</marvel>';
SELECT @x.query('/*');
You can query the avenger_name elements from the marvel_xml table with the following syntax:
SELECT xml_table.query('/marvel/avenger_name')
FROM marvel_xml;
It returns the following set of avenger_name elements:
<avenger_name>Hulk</avenger_name>
<avenger_name>Iron Man</avenger_name>
<avenger_name>Black Widow</avenger_name>
<avenger_name>Thor</avenger_name>
<avenger_name>Captain America</avenger_name>
<avenger_name>Hawkeye</avenger_name>
<avenger_name>Winter Soldier</avenger_name>
<avenger_name>Iron Patriot</avenger_name>
You can query the fourth avenger_name element from the marvel_xml table with the following xquery statement:
SELECT xml_table.query('/marvel[4]/avenger_name')
FROM marvel_xml;
It returns the following avenger_name element:
<avenger_name>Thor</avenger_name>Hi Scott,
The master database records all the system-level information for a SQL Server system, so best practise would be not to create any user-defined
object within it.
To change your default database(master by default) of your login to another, follow the next steps so that next time when connected you don't have to use "USE dbname" to switch database.
Open SQL Server Management Studio
--> Go to Object explorer(the left panel by default layout)
--> Extend "Security"
--> Extend "Logins"
--> Right click on your login, click "propertites"
--> Choose the "Default database" at the bottom of the pop-up window.
--or simply by T-SQL
Exec sp_defaultdb @loginame='yourLogin', @defdb='youDB'
Regarding your question, you can reference the below.
SELECT * FROM master.sys.all_objects where name ='Marvel'
--OR
SELECT OBJECT_ID('master.dbo.Marvel') --if non empty result returns, the object exists
--usually the OBJECT_ID is used if a if statement as below
IF OBJECT_ID('master.dbo.Marvel') IS NOT NULL
PRINT ('TABLE EXISTS') --Or some other logic
What is the sys.all_objects? See
here.
If you have any question, feel free to let me know.
Eric Zhang
TechNet Community Support -
Comparison of multiple column values with a single column value
I have two separate tables say Tab1 and Tab2
I want to select some datas , which is common to both the tables.
In tab1 , there is a column 'STATE' and it's value is 'A'
In tab2, there are multiple columns for the state, say STATE_A,STATE_B, STATE_C ETC and a row is present with the following details
STATE_A = 1, STATE_B =1 ,STATE_C =0,STATE_D=1
I need to select STATE when STATE_A ='1',
if my STATE='B', this STATE has to be selected since STATE_B =' 1', similraly
if my STATE='D', this STATE has to be selected since STATE_D =' 1',
If my STATE='C', STATE_C should not get selected since it's '0'.
Is it possible to do this in a single SELECT statement, where I have some other checks also or else how can I achieve it?Maybe this will help
Select * from STATE_MAS ;
STATE
A
B
D
F
H
Select * from STATE_CHILD
STATE_A STATE_B STATE_C STATE_D STATE_E STATE_F STATE_G STATE_H STATE_I STATE_J
1 0 0 1 1 0 0 0 0 0
CREATE OR REPLACE FUNCTION GET_STATE (P_VAL VARCHAR) RETURN NUMBER IS
V_SQL VARCHAR2(200);
V_COL VARCHAR2(35);
P_RETURN NUMBER ;
BEGIN
V_COL := 'STATE_'||P_VAL;
V_SQL := 'SELECT 1 FROM STATE_CHILD WHERE '||V_COL||' = 1 ';
EXECUTE IMMEDIATE V_SQL INTO P_RETURN ;
RETURN P_RETURN ;
END;
SELECT STATE FROM STATE_MAS
WHERE GET_STATE(STATE) = 1 ;
STATE
A
D
Maybe you are looking for
-
In Mainstage, triggering a loop made in Logic 8
Anyone have any tips on how to do this? Basically it'd be nice if I could, while in Mainstage I, trigger a software instrument region or an audio region that I made in Logic 8 by hitting a key on my MIDI controller. I don't really want to trigger a l
-
Can I see how large the file will actually be in the Save for Web dialog -- so I can set the lossy and settings appropriately? Why would the file double in size from what's indicated in the Save For Web dialog? What can I do to see the correct siz
-
Dear All, When I am creating a planned order thro MD11 and scheduling it, it is picking only one operation from the routing of the material for which the plnd order is created. What could be the reason for this? Manisha
-
Lost HD image in Finder window
I've lost a the image of my Hard Drive in the upper left hand corner of my finder window and don't know how to get it back. I must have inadvertantly made it go poof one day. It does show up when I open Disk Utility, but I can't figure out what to do
-
Can you find via purchase receipt my laptop