Passing a variable to select statement
Hi there,
I have a selection screen on which you can choose which table do you want to display.
I store the name of the selected table in a variable tab_name.
I want to use something like that:
data: tab_name(40).
select * from tab_name
into gt_master.
endselect.
But it did not allowed because tab_name is not a database table.
Is it possible to pass the table name in a select statement using a variable?
Hello
Yes it is posible you can use a dynamic select...
Try this:
DATA tabname(10).
DATA: BEGIN OF wa,
id TYPE scustom-id,
name TYPE scustom-name,
END OF wa.
tabname = 'SCUSTOM'.
SELECT id name INTO CORRESPONDING FIELDS OF wa FROM (tabname).
WRITE: / wa-id, wa-name.
ENDSELECT.
or
CONSTANTS: flight_tab_name(30) VALUE 'SPFLI'.
DATA: from_clause TYPE STRING.
DATA: BEGIN OF wa,
name(20) TYPE C,
connid TYPE spfli-connid,
END OF wa.
CONCATENATE flight_tab_name ' AS t1'
' JOIN scarr AS t2 ON t1carrid = t2carrid'
INTO from_clause.
SELECT t1connid t2carrname AS name
FROM (from_clause)
INTO CORRESPONDING FIELDS OF wa.
WRITE: / wa-name, wa-connid.
ENDSELECT
Hope this helps
Gabriel
Similar Messages
-
Bind Variable in SELECT statement and get the value in PL/SQL block
Hi All,
I would like pass bind variable in SELECT statement and get the value of the column in Dynamic SQL
Please seee below
I want to get the below value
Expected result:
select distinct empno ,pr.dept from emp pr, dept ps where ps.dept like '%IT' and pr.empno =100
100, HR
select distinct ename ,pr.dept from emp pr, dept ps where ps.dept like '%IT' and pr.empno =100
TEST, HR
select distinct loc ,pr.dept from emp pr, dept ps where ps.dept like '%IT' and pr.empno =100
NYC, HR
Using the below block I am getting column names only not the value of the column. I need to pass that value(TEST,NYC..) into l_col_val variable
Please suggest
----- TABLE LIST
CREATE TABLE EMP(
EMPNO NUMBER,
ENAME VARCHAR2(255),
DEPT VARCHAR2(255),
LOC VARCHAR2(255)
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (100,'TEST','HR','NYC');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (200,'TEST1','IT','NYC');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (300,'TEST2','MR','NYC');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (400,'TEST3','HR','DTR');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (500,'TEST4','HR','DAL');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (600,'TEST5','IT','ATL');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (700,'TEST6','IT','BOS');
INSERT INTO EMP (EMPNO,ENAME,DEPT,LOC) VALUES (800,'TEST7','HR','NYC');
COMMIT;
CREATE TABLE COLUMNAMES(
COLUMNAME VARCHAR2(255)
INSERT INTO COLUMNAMES(COLUMNAME) VALUES ('EMPNO');
INSERT INTO COLUMNAMES(COLUMNAME) VALUES ('ENAME');
INSERT INTO COLUMNAMES(COLUMNAME) VALUES ('DEPT');
INSERT INTO COLUMNAMES(COLUMNAME) VALUES ('LOC');
COMMIT;
CREATE TABLE DEPT(
DEPT VARCHAR2(255),
DNAME VARCHAR2(255)
INSERT INTO DEPT(DEPT,DNAME) VALUES ('IT','INFORMATION TECH');
INSERT INTO DEPT(DEPT,DNAME) VALUES ('HR','HUMAN RESOURCE');
INSERT INTO DEPT(DEPT,DNAME) VALUES ('MR','MARKETING');
INSERT INTO DEPT(DEPT,DNAME) VALUES ('IT','INFORMATION TECH');
COMMIT;
PL/SQL BLOCK
DECLARE
TYPE EMPCurTyp IS REF CURSOR;
v_EMP_cursor EMPCurTyp;
l_col_val EMP.ENAME%type;
l_ENAME_val EMP.ENAME%type;
l_col_ddl varchar2(4000);
l_col_name varchar2(60);
l_tab_name varchar2(60);
l_empno number ;
b_l_col_name VARCHAR2(255);
b_l_empno NUMBER;
begin
for rec00 in (
select EMPNO aa from EMP
loop
l_empno := rec00.aa;
for rec in (select COLUMNAME as column_name from columnames
loop
l_col_name := rec.column_name;
begin
l_col_val :=null;
l_col_ddl := 'select distinct :b_l_col_name ,pr.dept ' ||' from emp pr, dept ps where ps.dept like ''%IT'' '||' and pr.empno =:b_l_empno';
dbms_output.put_line('DDL ...'||l_col_ddl);
OPEN v_EMP_cursor FOR l_col_ddl USING l_col_name, l_empno;
LOOP
l_col_val :=null;
FETCH v_EMP_cursor INTO l_col_val,l_ename_val;
EXIT WHEN v_EMP_cursor%NOTFOUND;
dbms_output.put_line('l_col_name='||l_col_name ||' empno ='||l_empno);
END LOOP;
CLOSE v_EMP_cursor;
END;
END LOOP;
END LOOP;
END;user1758353 wrote:
Thanks Billy, Would you be able to suggest any other faster method to load the data into table. Thanks,
As Mark responded - it all depends on the actual data to load, structure and source/origin. On my busiest database, I am loading on average 30,000 rows every second from data in external files.
However, the data structures are just that - structured. Logical.
Having a data structure with 100's of fields (columns in a SQL table), raise all kinds of questions about how sane that structure is, and what impact it will have on a physical data model implementation.
There is a gross misunderstanding by many when it comes to performance and scalability. The prime factor that determines performance is not how well you code, what tools/language you use, the h/w your c ode runs on, or anything like that. The prime factor that determines perform is the design of the data model - as it determines the complexity/ease to use the data model, and the amount of I/O (the slowest of all db operations) needed to effectively use the data model. -
Getting error after putting variable in select statement
Hi All,
Kindly help me with Pl/sql code
here i'm trying to put variable in select statement ....
I successfully put the Yr and Mnth ..but getting error for loop variable "i"
Here i'm getting error that too because of " i" only-->TRIM(UPPER(TO_CHAR(TO_DATE(i||'-'||Mnth||'-'||Yr,'dd-Mon-YYYY'),'DAY')))
Please find the full code below.
Declare
Yr number not null:=2010;
Mnth varchar2(20) not null:='Jun';
v_val number:=0;
begin
for i in 1..2 loop
case i
SELECT count(*) into v_val
FROM DUAL
WHERE TRIM(UPPER(TO_CHAR(TO_DATE(i||'-'||Mnth||'-'||Yr,'dd-Mon-YYYY'),'DAY')))
in (UPPER('Monday'),UPPER('Tuesday'),UPPER('WEDNESDAY'),UPPER('THURSDAY'),UPPER('friday'))
end case;
end loop;
end;Declare
Yr number not null:=2010;
Mnth varchar2(20) not null:='Jun';
v_val number:=0;
begin
for i in 1..2 loop
SELECT count(*) into v_val
FROM DUAL
WHERE TRIM(UPPER(TO_CHAR(TO_DATE(i||'-'||Mnth||'-'||Yr,'dd-Mon-YYYY'),'DAY')))
in (UPPER('Monday'),UPPER('Tuesday'),UPPER('WEDNESDAY'),UPPER('THURSDAY'),UPPER('friday'));
end loop;
end; -
Storing variable from select statement
I need to store a variable from a select statement into a session. Before I was taken what was passed from another page and throwing it into a session.--
String Password= request.getParameter("Password");
String sql = "Select WEB_USER_ID FROM Web_User WHERE PASSWORD = '" + Password +"'";
session.setAttribute("USER",Password);
Now though I need to put in Web_User_Id and cannot find the proper syntax. Can someone help
session.setAttribute("User",???????);WEB_USER_ID is unidentified because it is a column name, not a variable name. You should first assign its value to a variable and then put the variable name into the setAttribute statement instead.
Your query may return more than one result based on the way it is written. It sounds like you are trying to find all users with a password that is equal to the value of Password. If this is correct, then are you trying to create an attribute for each user?
If your intention is to locate a user, then the user id and password should have been provided. A variable should be defined for both the password and user id. You should then add the user id to the where clause. After a successful search, the attributes can be created using the same syntax. -
How to use column name as variable in select statement
hi,
i want to make a sql query where in select statement using variable as a column name. but its not working plz guide me how can i do this.
select :m1 from table1;
regardsHi,
Is this what you want..
SQL> select &m1 from dept;
Enter value for m1: deptno
old 1: select &m1 from dept
new 1: select deptno from dept
DEPTNO
10
20
30
40
SQL> select &m1 from dept;
Enter value for m1: dname
old 1: select &m1 from dept
new 1: select dname from dept
DNAME
ACCOUNTING
RESEARCH
SALES
OPERATIONS
SQL> select &&m1 from dept;
Enter value for m1: loc
old 1: select &&m1 from dept
new 1: select loc from dept
LOC
NEW YORK
DALLAS
CHICAGO
BOSTON
SQL> select &&m1 from dept;
old 1: select &&m1 from dept
new 1: select loc from dept
LOC
NEW YORK
DALLAS
CHICAGO
BOSTONIf you use single '&' then each time you fire the query, It will ask for the new value..
But if you will use double '&&' the value of m1 will be persistent across the session..
Twinkle -
Variable in Select statement JDBC sender
Hi All,
I am working on JDBC sender and this scenario is working fine. Now the legacy system has different enviroment for development, quality and production so I need to change the enviroment for each system.
Is there any way I can make it as variable and the movment it system checks it's development of XI system then it should pick up right enviroment for legacy system and that can be used in select statement.
My select statement looks like and highlighted one is the enviroment which needs to be a variable.
select digits(HMOUTLT) as HMOUTLT, hmprodu as HMPRODU, HMCHKOQ as HMCHKOQ, HMCHKiQ as HMCHKIQ, HMWKPER as HMKPER, HMLSDAT as HMLSDAT from bi5filmm.bsimhp where hmprflg = ' ' and rrn(bsimhp) < 3000 and hmextdt = '2007-12-24'.
I am not sure if value mapping can be used here or not.
regards
Riasolved
-
Using variable in select statement (php)
I am having difficulty using a variable in a select
statement.
The following manual query (using a static date) works fine:
$query_Recordset1 = "SELECT * FROM academyClasses WHERE
classDate > '2006-06-01' ";
However, If I use the following:
$dateVar = date('Y-m-d');
mysql_select_db($database_mw, $mw);
$query_Recordset1 = "SELECT * FROM academyClasses WHERE
classDate > $dateVar ";
ALL records are returned, which means the $dateVar variable
is not being recognized. I have compared the $dateVar values
<?php echo $datetime; ?> against the actual value of my date
field <?php echo $row_Recordset1['classDate']; ?> in my
results table and it seems that the values are indeed accurate in
terms of a date 2006-06-04 for example.
My date field "classDate" is of a "date" type within the
mysql database. I'm using Dreamweaver MX 2004 with Mac OSX 10.3.9.
I'm sure this is just a syntax problem, at least I hope it
is.
Any help is greatly appreciated.On Wed, 7 Jun 2006 04:49:57 +0000 (UTC), "mgwaters"
<[email protected]> wrote:
>Thanks Gary. That did seem to get the select statement
working, but I had to
>enter a manual date as before $dateVar = '2006-06-01'; on
the previous line of
>code to actually get it to filter my records. So... it
looks like my setting of
>the date variable:
> $dateVar = date('Y-m-d');
> does not seem to be recognized within the SELECT
statement.
Try this:
$query_Recordset1 = "SELECT * FROM academyClasses WHERE
classDate>'$dateVar'";
print $query_Recordset1;
See what is in the SQL statement.
Gary -
Exclude variables in select statement
Hi,
I need to select some values from a column in a table. How do make my select statement such that:
This is INCLUDED from the result:
"Cropland_Stir_high"
While this is EXCLUDED:
"Cropland_Stir_high_with_Structures"
My statement:
select *fromHUCS
whereHUCCODE='01010001'AND
name='Cropland_Stir_high";
Appreciate any help.
Marilyn GamboneGood day deskcheck1,
Since you use the word "include" I am guessing that you want any row that the string include (part of the string is equal to) 'Cropland_Stir_high',
but not those that include 'Cropland_Stir_high_with_Structures'.
In this case you should know the sign % and you can use this query:
select * from HUCS
where HUCCODE='01010001' AND name like '%Cropland_Stir_high%' and not name like '%Cropland_Stir_high_with_Structures%'
You can (and should) learn more about Filter Conditions in this link:
https://msdn.microsoft.com/en-US/library/k58xx95s(v=vs.80).aspx
Ronen Ariely
[Personal Site] [Blog] [Facebook] -
Variable in select statement - Is it possible!
Hello All,
I have a internal table with one column containing table names
Field
RSAABAP
RSATABLE
RSAFGA
I need to read this internal table and write the content of each table on the screen.. like select * from...
My question here is
Is it possible for me to use a statement like
select * from tabname where this tabname is variable which could accomodate the table names like RSAABAP & so on..
Thanks in advance!
KarthikYes it is possible:
select *
from ( v_tabname )
into table itab.
where..
Refer the following example:
<i><b>Example
Dynamic specification of the inner joins. The column specification after SELECT is also dynamic.
PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
DATA: BEGIN OF wa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa.
DATA itab LIKE SORTED TABLE OF wa
WITH UNIQUE KEY fldate carrname connid.
DATA: column_syntax TYPE string,
dbtab_syntax TYPE string.
column_syntax = `ccarrname pconnid f~fldate`.
dbtab_syntax = `( ( scarr AS c `
& ` INNER JOIN spfli AS p ON pcarrid = ccarrid`
& ` AND p~cityfrom = p_cityfr`
& ` AND p~cityto = p_cityto )`
& ` INNER JOIN sflight AS f ON fcarrid = pcarrid `
& ` AND fconnid = pconnid )`.
SELECT (column_syntax)
FROM (dbtab_syntax)
INTO CORRESPONDING FIELDS OF TABLE itab.
LOOP AT itab INTO wa.
WRITE: / wa-fldate, wa-carrname, wa-connid.
ENDLOOP.</b></i>
Regards,
ravi -
Passing URL Variables, Can "Or" statement applies?
in my php data, i have 2 catagorical data
cat1
cat2
most of the time, since most items have single catagory, i
can just pass 1 url variables, for ex: ?cat1=5
but on rare occasions, some of my items will have 2
attributes, making it necessary to filter not only cat1=5, but
maybe cat2=5 as well.
the way you do "and" statement is just with ampersand sign
&, but how would you do "or" statement?
(or am i totally misinterpretting the way that URL variables
work? i also thought that the filtering process might occur at the
webpage, and the & statement merely passes 2 or more variables,
while the webpage decide what to do with them. am i correct in this
statement instead?)
thanks again!
p.s. do you get anything when i declare you the official
answer? like, is there a forum level up thingy which you become
like master guru of dreamweaver helper or something...? sort of
like how they do it in yahoo answersBih Wang wrote:
> the way you do "and" statement is just with ampersand
sign &, but how would
> you do "or" statement?
You can't do an "or" statement in URL variables. The query
string (after
the question mark) is a series of name/value pairs separated
by ampersands.
> (or am i totally misinterpretting the way that URL
variables work? i also
> thought that the filtering process might occur at the
webpage, and the &
> statement merely passes 2 or more variables, while the
webpage decide what to
> do with them. am i correct in this statement instead?)
It's the script inside the web page that decides what to do
with the
variables.
> p.s. do you get anything when i declare you the official
answer? like, is
> there a forum level up thingy which you become like
master guru of dreamweaver
> helper or something...? sort of like how they do it in
yahoo answers
This forum doesn't have a points system, but we're moving to
a new forum
in a couple of weeks' time, where you can give points.
However, gaining
points won't automatically give people any titles or status.
David Powers
Adobe Community Expert, Dreamweaver
http://foundationphp.com -
How to pass output from one selection-as input to another selectiion??
From a user prompt will iniate many user table selections. And the outputs of each table selection will be used as inputs for the next table selection
I reviewed variable Scope and inner and outer Declare—it would be a great help if some one could give me a example of the right approach??
see sample script :
Thank you so much for your help
---------------------------- Section_01_UserInput.sql -------------------------
-- THIS SECTION OF THE SCRIPT IS TO PROMPT THE USER FOR THE MODEL NAME AND THE ORGANIZATION CODE (e.I...M1,M2,M3...._)
-- THE ORGANIZATION WHERE MODEL WAS CREATED IS THE ONLY PLACE WHERE YOU WOULD FIND THE BILL_SEQUENCE_ID
-- THE COMMON ORGANIZATIONS DO NOT HAVE COMPONETS THEY JUST REFERENCE TO THE ORHANIZATION THAT MODEL WAS CREATED
SET VERIFY OFF
SET ECHO OFF
ACCEPT v_assemblyName CHAR DEFAULT myDefaultAssemblyName PROMPT 'Enter Assembly name:'
ACCEPT v_OrganizationCode CHAR DEFAULT myDefaultOrganizationCode PROMPT 'Enter the Org where the MODEL WAS CREATED :'
SELECT a.organization_code, a.organization_id, b.inventory_item_id, b.segment1, b.description
FROM mtl_parameters a, mtl_system_items_b b
WHERE a.organization_code = '&v_OrganizationCode'
AND
b.segment1 ='&v_assemblyName'
AND
b.organization_id = a.organization_id;
SET VERIFY ON
SET ECHO ON
----OUTPUT of the Section_01_UserInput.sql QUERY---
ORGANIZATION_CODE ORGANIZATION_ID INVENTORY_ITEM_ID SEGMENT1 DESCRIPTION
M1, 207, *[225957]* , CN927779, Sentinel Custom Desktop
----------------------------- Section_02_bom_structures_b.sql ------------------
-- List all option class Bill of Materials for a single ATO or PTO model
-- List of bill_sequence_id and all component_item_id's that belong to that
-- bill_sequence_id
SELECT a.assembly_item_id, a.bill_sequence_id, b.bom_item_type, b.component_item_id
FROM bom_structures_b a, bom_components_b b
WHERE a.assembly_item_id = *['225957']*
AND
b.bill_sequence_id = a.bill_sequence_id
AND
b.bom_item_type = '2'; -- OPTION Class's are identified by bom_item_type
----OUTPUT of the Section_02_bom_structures_b.sql QUERY---
ASSEMBLY_ITEM_ID ORGANIZATION_ID BILL_SEQUENCE_ID BOM_ITEM_TYPE BILL_SEQUENCE_ID COMPONENT_ITEM_ID
*[225957]* , 207 , *[90754]* 2 90754 *[297]*
*[225957]* , 207 , *[90754]* 2 90754 *[299]*
*[225957]* , 207 , *[90754]* 2 90754 *[301]*
----------------------------- Section_03A_bom_structures_b.sql-------------------
-- List all the components under the option class
-- When no components are found with bom_item_type ='4' which means that this assembly has no
-- components in the bom_components_b because the assembly is a child that is a option class.
-- We need to run this script with a bom_item_type ='2' and stored the component_item_id into MEMORY_assembly_id
-- and run script again by read from MEMORY_assembly_id and bom_item_type = '4';
SELECT a.assembly_item_id, a.organization_id, a.bill_sequence_id, b.bom_item_type, b.bill_sequence_id, b.component_item_id
FROM bom_structures_b a, bom_components_b b
WHERE a.assembly_item_id = '297'
AND
b.bill_sequence_id = a.bill_sequence_id
AND
b.bom_item_type = '4';
----OUTPUT of the Section_03A_bom_structures_b.sql QUERY---
ASSEMBLY_ITEM_ID ORGANIZATION_ID BILL_SEQUENCE_ID BOM_ITEM_TYPE BILL_SEQUENCE_ID COMPONENT_ITEM_ID
*[297]* 207 *[384]* 4 384 *[185]*
*[297]* 207 *[384]* 4 384 *[241]*
*[297]* 207 *[384]* 4 384 *[249]*
*[297]* 207 *[384]* 4 384 *[4747]*
*[297]* 207 *[384]* 4 384 *[4749]*
*[297]* 207 *[384]* 4 384 *[4751]*
=================================================================================================
note output FROM EACH SELECT that needs to be passed to the next SELECT statement are *[ ]* for example *['225957'] see below:*
----OUTPUT of the Section_01_UserInput.sql QUERY---
ORGANIZATION_CODE ORGANIZATION_ID INVENTORY_ITEM_ID SEGMENT1 DESCRIPTION
M1, 207, *[225957]* , CN927779, Sentinel Custom Desktop
----OUTPUT of the Section_02_bom_structures_b.sql QUERY---
ASSEMBLY_ITEM_ID ORGANIZATION_ID BILL_SEQUENCE_ID BOM_ITEM_TYPE BILL_SEQUENCE_ID COMPONENT_ITEM_ID
*[225957]* , 207 , *[90754]* 2 90754 *[297]*
*[225957]* , 207 , *[90754]* 2 90754 *[299]*
*[225957]* , 207 , *[90754]* 2 90754 *[301]*
----OUTPUT of the Section_03A_bom_structures_b.sql QUERY---
ASSEMBLY_ITEM_ID ORGANIZATION_ID BILL_SEQUENCE_ID BOM_ITEM_TYPE BILL_SEQUENCE_ID COMPONENT_ITEM_ID
*[297]* 207 *[384]* 4 384 *[185]*
*[297]* 207 *[384]* 4 384 *[241]*
*[297]* 207 *[384]* 4 384 *[249]*
*[297]* 207 *[384]* 4 384 *[4747]*
*[297]* 207 *[384]* 4 384 *[4749]*
*[297]* 207 *[384]* 4 384 *[4751]*
Edited by: user612347 on Mar 16, 2010 4:21 PM
Edited by: user612347 on Mar 16, 2010 4:57 PMHi,
Sorry, it's unclear what you want to do.
Whenever you have a problem, it helps to be as specific as you can.
Post a little sampel data (CREATE TABLE and INSERT statements) and the results you want from that data. Since your problem involves parameters, give a couple of sets of parameters, and the results you want for each set, given the same data.
Are you saying that, after the user enters one set of parameters, you will need to run a variation of this query:
SELECT a.assembly_item_id, a.organization_id, a.bill_sequence_id, b.bom_item_type, b.bill_sequence_id, b.component_item_id
FROM bom_structures_b a, bom_components_b b
WHERE a.assembly_item_id = '303'
AND
a.organization_id = '207'
AND
b.bill_sequence_id = a.bill_sequence_id
AND
b.bom_item_type = '4';several times? What will be different each time? Will the hard-coded strings in the WHERE clause ('303', '207' and '4') be values from the earlier query?
Do you really want to run this query several times, or would you rather run one query, and have it produce results for all the relevant values? (That would probably be eaisest and less error-prone). When you post your desired results, post what you would most like to see. If something else is acceptable, describe it.
You can write SQL*Plus scripts to use parameters (substitution variables.
For example, you can write a query that says:
WHERE a.assembly_item_id = '&1'
AND a.organization_id = '&2'
AND b.bill_sequence_id = a.bill_sequence_id
AND b.bom_item_type = '&3';and call it like this
@Section_03A_bom_structures_b 303 207 4You can have a query output several such rows (for example:
@Section_03A_bom_structures_b 303 207 4
@Section_03A_bom_structures_b 304 298 3
@Section_03A_bom_structures_b 306 99 4), send all of that output to a SPOOL file, and then execute the SPOOL file. -
How can i pass a variable instead of a table name in the Select statement.
Dear all
how can i pass a variable instead of a table name in a select statement ?
Example :-
Begin
P_get_procedure_tname (aap_name,otable_name);--It will take an application name and will return a table name
Select col1 into ocol1
from ---- here i want to pass the variable OTABLE_NAME
End;How can i pass this ?Hi,
You can use dynamic sql.
EXECUTE IMMEDIATE 'SELECT COL1 INTO ' || OCOL1 || ' FROM " || OTABLE_NAME;
{code}
cheers
VT -
Passing variable in a select statement
Everything about this query works except I'm trying to capture the @companyid (which is a variable) into a column in my table via my select statement.
My error is Invalid column name 'A113', etc. However it is the A113 I'm trying to insert into the first column of the table SAP_GLsummary
Can someone fix my syntax so this works.
-- retrieves a list of gl balances from all companies
truncate table sap_glsummary
declare @companyID char(6)
declare c_company cursor for
select INTERID from dbo.GP_Interid
open c_company fetch next from c_company into @companyID
while @@fetch_status = 0
begin
insert into SAP_GLsummary
exec ('select ' + @companyID + ' , [Year],[Period ID],[Account Number],[Account Description],[Credit Amount],[Debit Amount]
FROM ' +'cgygp01.'+ @companyID + '.dbo.AccountSummary')
fetch next from c_company into @companyID
end
close c_company
deallocate c_companyTry
- retrieves a list of gl balances from all companies
truncate table sap_glsummary
declare @companyID char(6)
declare c_company cursor for
select INTERID from dbo.GP_Interid
open c_company fetch next from c_company into @companyID
while @@fetch_status = 0
begin
insert into SAP_GLsummary (Col1, Col2, ...)
exec ('select ' + quotename(@companyID,'''') + ' , [Year],[Period ID],[Account Number],[Account Description],[Credit Amount],[Debit Amount]
FROM ' +'cgygp01.'+ quotename(@companyID) + '.dbo.AccountSummary')
fetch next from c_company into @companyID
end
close c_company
deallocate c_company
For every expert, there is an equal and opposite expert. - Becker's Law
My blog
My TechNet articles -
How to pass values in select statement as a parameter?
Hi,
Very simple query, how do I pass the values that i get in the cursor to a select statement. If table1 values are 1,2,3,4 etc , each time the cursor goes through , I will get one value in the variable - Offer
So I want to pass that value to the select statement.. how do i do it?
the one below does not work.
drop table L1;
create table L1
(col1 varchar(300) null) ;
insert into L1 (col1)
select filter_name from table1 ;
SET SERVEROUTPUT ON;
DECLARE
offer table1.col1%TYPE;
factor INTEGER := 0;
CURSOR c1 IS
SELECT col1 FROM table1;
BEGIN
OPEN c1; -- PL/SQL evaluates factor
LOOP
FETCH c1 INTO offer;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(offer);
select * from table1 f where f.filter_name =:offer ;
factor := factor + 1;
DBMS_OUTPUT.PUT_LINE(factor);
END LOOP;
CLOSE c1;
END;Hi User,
You are looking somethuing like this, as passing the values to the Cursor as a Paramter.
DECLARE
CURSOR CURR (V_DEPT IN NUMBER) --- Cursor Declaration which accepts the deptno as parameter.
IS
SELECT *
FROM EMP
WHERE DEPTNO = V_DEPT; --- The, Input V_DEPT is passed here.
L_EMP EMP%ROWTYPE;
BEGIN
OPEN CURR (30); -- Opening the Cursor to Process the Value for Department Number 30 and Processing it with a Loop below.
DBMS_OUTPUT.PUT_LINE ('Employee Details for Deptno:30');
LOOP
FETCH CURR INTO L_EMP;
EXIT WHEN CURR%NOTFOUND;
DBMS_OUTPUT.PUT ('EMPNO: ' || L_EMP.EMPNO || ' is ');
DBMS_OUTPUT.PUT_LINE (L_EMP.ENAME);
END LOOP;
CLOSE CURR;
DBMS_OUTPUT.PUT_LINE ('Employee Details for Deptno:20'); -- Opening the Cursor to Process the Value for Department Number 20
OPEN CURR (20);
LOOP
FETCH CURR INTO L_EMP;
EXIT WHEN CURR%NOTFOUND;
DBMS_OUTPUT.PUT ('EMPNO: ' || L_EMP.EMPNO || ' is ');
DBMS_OUTPUT.PUT_LINE (L_EMP.ENAME);
END LOOP;
CLOSE CURR;
END;Thanks,
Shankar -
Passing value as a parameter in select statement
Hi,
Very simple query, how do I pass the values that i get in the cursor to a select statement. If table1 values are 1,2,3,4 etc , each time the cursor goes through , I will get one value in the variable - Offer
So I want to pass that value to the select statement.. how do i do it?
the one below does not work.
drop table L1;
create table L1
(col1 varchar(300) null) ;
insert into L1 (col1)
select filter_name from table1 ;
SET SERVEROUTPUT ON;
DECLARE
offer table1.col1%TYPE;
factor INTEGER := 0;
CURSOR c1 IS
SELECT col1 FROM table1;
BEGIN
OPEN c1; -- PL/SQL evaluates factor
LOOP
FETCH c1 INTO offer;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(offer);
select * from table1 f where f.filter_name =:offer ;
factor := factor + 1;
DBMS_OUTPUT.PUT_LINE(factor);
END LOOP;
CLOSE c1;
END;Hi Greg,
Thanks for the response, No there is no ODB.net involved here.
If I remove the : from :offer. I get this error now.
Changed SQL is:
select * from table1 f where f.filter_name =offer ;
Error report:
ORA-06550: line 16, column 23:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 16, column 9:
PL/SQL: SQL Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
Maybe you are looking for
-
Database adapter to continue polling after hitting exception
I am using BPEL 10.1.3.5. Using Database adapter "LogicalDeletePollingStrategy". On hitting the exception in one of the records the adapter stops polling/processing other records for that transaction. Ideally it is expected to continue processing oth
-
Best practice to back up our most important asset : iPhoto!
Hi everyone! I consider my 30k photos which I've carefully tagged/marked/modified/red eyed/etc as my most important asset. I've spent days and days on iPhoto to eventually build this 50GB library. I've bought my 500 GB TC few months ago and now guess
-
How to import photos from multiple iphoto libraries to iPad
How do I import photos from multiple iPhoto libraries from my iMac to the new iPad? I have 4 different iPhoto Libraries on my iMac. I can import photos from iPhoto library 1, to the iPad, but when I import photos from iPhoto Library 2, created on m
-
Hi all, This is my first post I hope someone can help me. Basically I have just received a 6800 128mb card. My problem is that i bought this card mainly becuase of the superb cooling solution and the fact that the fan speed can be adjusted. However n
-
Videos, Media Do Not Play On IE
I have tried countless times to download the Flash Player, and it says it completed. However, I go on to articles with videos, and it says I need to update my Flash Player. I am extremely frustrated that this can not even play a single video. Plus, w