Dynamic SQL : passing table name as parameter
Hi
I have a SQL query (a store procedure ) that i want to convert to PLSQL
This is a part of my SQL query that i am trying to to find a solution for it, because i cant convert it to oracle :
DECLARE lookupTableRow CURSOR FOR
SELECT TableName FROM SYS_LookUpTable
OPEN lookupTableRow
FETCH NEXT FROM lookupTableRow INTO @tableName
WHILE @@FETCH_STATUS=0
BEGIN
SET @sql='SELECT * FROM '+@tableName
EXECUTE sp_executesql @sql
IF @counter=0
BEGIN
INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table', @tableName)
END
ELSE
BEGIN
INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table'+CONVERT(NVARCHAR(10),@counter), @tableName)
END
SET @counter=@counter+1
FETCH NEXT FROM lookupTableRow INTO @tableName
END
CLOSE lookupTableRow
DEALLOCATE lookupTableRow
As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
Furthermore when i execute this dynamic query in my SQL store procedure each SELECT statement return me as a result the relevant table rows , those result are different in each loop .
So i cant do this too with ORACLE dynamic sql .
Please advice for any solution
* how can i use dynamic sql with table name as parameter ?
* how can i use a "dynamic" cursor, in order to be able to display the dynamic results ?
Thanks for the advice
Hi,
b003cf5e-e55d-4ff1-bdd2-f088a662d9f7 wrote:
Hi
I have a SQL query (a store procedure ) that i want to convert to PLSQL
This is a part of my SQL query that i am trying to to find a solution for it, because i cant convert it to oracle :
DECLARE lookupTableRow CURSOR FOR
SELECT TableName FROM SYS_LookUpTable
OPEN lookupTableRow
FETCH NEXT FROM lookupTableRow INTO @tableName
WHILE @@FETCH_STATUS=0
BEGIN
SET @sql='SELECT * FROM '+@tableName
EXECUTE sp_executesql @sql
IF @counter=0
BEGIN
INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table', @tableName)
END
ELSE
BEGIN
INSERT INTO T_TABLE_MAPPING VALUES('P_MAIN_METADATA', 'Table'+CONVERT(NVARCHAR(10),@counter), @tableName)
END
SET @counter=@counter+1
FETCH NEXT FROM lookupTableRow INTO @tableName
END
CLOSE lookupTableRow
DEALLOCATE lookupTableRow
As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
Furthermore when i execute this dynamic query in my SQL store procedure each SELECT statement return me as a result the relevant table rows , those result are different in each loop .
So i cant do this too with ORACLE dynamic sql .
Please advice for any solution
* how can i use dynamic sql with table name as parameter ?
* how can i use a "dynamic" cursor, in order to be able to display the dynamic results ?
Thanks for the advice
I have a SQL query (a store procedure ) that i want to convert to PLSQL
I doesn't help when you use one term to mean another thing.
SQL is a language used in both Oracle and other products, such as Microsoft's SQL Server. I don't know much about SQL Server, but Oracle (at least) doesn't support stored procedures in SQL itself; they have to be coded in some other language, such as PL/SQL.
As i understand i can't use ORACLE dynamic sql (execute immediate) when the table name is a parameter
If the table name is a parameter (or only known at run-time for any reason), that's exactly the kind of situation where you MUST use dynamic SQL.
The number of columns that a query produces (and their datatypes) is fixed when you compile a query, whether that query is dynamic or not. If you have multiple queries, that produce result sets with different numbers of columns, then you can't combine them into a single query. The best you can do with one query is to add NULL columns to some of the queries so they all produce the same number of columns.
If you're just displaying the results, there might not be any reason to combine separate result sets. Just display one result set after another.
Whenever you have a question, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say what version of Oracle you're using (e.g. 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002
Similar Messages
-
Pass table name as parameter in prepared Statement
Can I pass table name as parameter in prepared Statement
for example
select * from ? where name =?
when i use setString method for passing parameters this method append single colon before and after of this parameter but table name should be send with out colon as SQL Spec.
I have another way to make sql query in programing but i have a case where i have limitation of that thing so please tell me is it possible with prepared Statment SetXXx methods or not ?
Thanks
Haroon Idrees.haroonob wrote:
I know ? is use for data only my question is this way to pass table name as parameterI assume you mean "how can I do it?" As I have already answered "is this the way?" with no.
Well, I would say (ugly as it is) String concatenation, or stored procedures. -
Passing TABLE NAME as parameter is possible or not?
I want develop a small/simple report like this
TABLE NAME :
WHERE :
ORDER BY :
QUERY ROWS
In the above model i want to pass all the three (TABLE NAME,WHERE and ORDER BY) as a parameter.
My doubt, is that possible to pass TABLE NAME as a parameter? If so!
When i enter any TABLE NAME it has to fetch me out the records of that table (Based on WHERE condition and ORDER BY).
Is that possible to do?
Need some help!
Edited by: Muthukumar Seshadri on Aug 10, 2012 6:19 PMYes, it is possible with lexical parameters. Look in the help for examples:
SELECT Clause
SELECT &P_ENAME NAME, &P_EMPNO ENO, &P_JOB ROLE FROM EMP
P_ENAME, P_EMPNO, and P_JOB can be used to change the columns selected at runtime. For example, you could enter DEPTNO as the value for P_EMPNO on the Runtime Parameter Form.
Note that in this case, you should use aliases for your columns. Otherwise, if you change the columns selected at runtime, the column names in the SELECT list will not match the Report Builder columns and the report will not run.
FROM Clause
SELECT ORDID, TOTAL FROM &ATABLE
ATABLE can be used to change the table from which columns are selected at runtime. For example, you could enter ORD for ATABLE at runtime.
If you dynamically change the table name in this way, you may also want to use lexical references for the SELECT clause (look at the previous example) in case the column names differ between tables.
WHERE Clause
SELECT ORDID, TOTAL FROM ORD WHERE &CUST
ORDER BY Clause
SELECT ORDID, SHIPDATE, ORDERDATE, TOTAL FROM ORD ORDER BY &SORT You have to be really careful with this approach. Dynamic SQL may cause serious performance problems.
Edited by: InoL on Aug 10, 2012 10:06 AM -
Help passing table name as parameter to a procedure
Hello,
i'm trying to write a procedure that takes a table name as input and uses a cursor to select a column,count(1) from the passed table to the cursor. The procedure i've come up with is as follows,
CREATE OR REPLACE
PROCEDURE excur(
p_tbl user_tables.table_name%type )
AS
type rc is ref cursor;
c rc;
res BOOLEAN;
BEGIN
open c for 'SELECT columnA,COUNT(1) FROM'|| p_tbl||';';
close c;
END excur;When i try to execute it, an error pops up informing that a table cannot be used in this context. As in i cannot pass a table name as an argument to a procedure. Kindly guide as to how to solve this situation.vishm8 wrote:
Hello,
i'm trying to write a procedure that takes a table name as input and uses a cursor to select a column,count(1) from the passed table to the cursor. The procedure i've come up with is as follows,
CREATE OR REPLACE
PROCEDURE excur(
p_tbl user_tables.table_name%type )
AS
type rc is ref cursor;
c rc;
res BOOLEAN;
BEGIN
open c for 'SELECT columnA,COUNT(1) FROM'|| p_tbl||';';
close c;
END excur;When i try to execute it, an error pops up informing that a table cannot be used in this context. As in i cannot pass a table name as an argument to a procedure. Kindly guide as to how to solve this situation.Generally speaking, Dynamic code is a bad idea for a staggering number of reasons.
That aside, what do you want to return? You're selecting a column and applying an aggregate function (count) but you're not grouping, that doesn't usually work out too well.
TUBBY_TUBBZ?select owner, count(*) from all_objects;
select owner, count(*) from all_objects
ERROR at line 1:
ORA-00937: not a single-group group functionWhy do you perceive the need to be able to take in ANY table name, can't you design an application where table names are known at compile time and not run time? -
How to pass Table name as parameter
For example, you have several tables (TableA, TableB, TableC...TableN) that have the same structure.
Ex.
CREATE TABLE TableA(
id VARCHAR(5),
name VARCHAR(20)
CREATE TABLE TableB(
id VARCHAR(5),
name VARCHAR(20)
And you want to create a stored procedure in Oracle that can be used for all of the tables (TableA, TableB, ...)
Ex. SELECT * FROM <tablename>
WHERE ID > 1;
How do you write the prepareCall and Callable Statement for that?
Thanks in advance.You can't, not directly.
You have two choices:
-Write the SQL in java, then you can use string concatenation.
-Use 'dynamic sql' in Oracle. There is a standard package that will take dynamic sql and run it. -
Not able to pass table name as parameter in function
Hi,
i am not able to pass tablename as parameter. I am using below function.
function count_test(tabname varchar2) return number is
l_count number;
begin
select count(*) INTO l_count FROM tabname;
RETURN l_count;
END;You can't do it with static SQL.
The only way is to do it with dynamic SQL:
EXECUTE IMMEDIATE 'select count(*) FROM '|| tabname INTO l_count;
Regards.
Al
Edited by: Alberto Faenza on May 10, 2012 1:44 AM
Mispelling -
Passing Table name as parameter to proc.
Hi,
I need to know how to pass a table name to a oracle procedure.
In that procedure I will put that table name in a variable and then I will make operations on that table like DELETE, UPDATE and INSERT.
Kinldy give me the solution for the above problem as soon as possible..
Thanks & regards,
KiranYou shouldn't do it, but if you do, you can use something like this:
Anton
create or replace type my_parm as object
( name varchar2(30)
, val anydata
create or replace type my_parms as table of my_parm
create table t1( c1 number, c2 varchar2(10), c3 date )
create or replace procedure doital( p_action in varchar2, p_tab in varchar2, parms in my_parms )
is
p_stmt1 varchar2(32000);
p_stmt2 varchar2(32000);
ind pls_integer;
curs integer;
dummy integer;
t_a anytype;
t_v varchar2(32000);
t_n number;
t_d date;
begin
curs := dbms_sql.open_cursor;
if upper( p_action ) = 'I'
then
ind := parms.first;
loop
exit when ind is null;
p_stmt1 := p_stmt1 || ', ' || parms( ind ).name;
p_stmt2 := p_stmt2 || ', :b' || to_char( ind );
ind := parms.next( ind );
end loop;
p_stmt1 := 'insert into ' || p_tab || ' (' || substr( p_stmt1, 2 ) || ' ) values (' || substr( p_stmt2, 2 ) || ' )';
dbms_sql.parse( curs, p_stmt1, dbms_sql.native );
ind := parms.first;
loop
exit when ind is null;
case parms( ind ).val.GetType( t_a )
when dbms_types.typecode_varchar2
then
dummy := parms( ind ).val.GetVarchar2( t_v );
dbms_sql.bind_variable( curs, ':b' || to_char( ind ), t_v );
when dbms_types.typecode_number
then
dummy := parms( ind ).val.GetNumber( t_n );
dbms_sql.bind_variable( curs, ':b' || to_char( ind ), t_n );
when dbms_types.typecode_date
then
dummy := parms( ind ).val.GetDate( t_d );
dbms_sql.bind_variable( curs, ':b' || to_char( ind ), t_d );
end case;
ind := parms.next( ind );
end loop;
end if;
dummy := dbms_sql.execute( curs );
dbms_sql.close_cursor( curs );
end;
begin
doital( 'I', 't1', my_parms( my_parm( 'c2', anydata.ConvertVarchar2( 'testje' ) )
, my_parm( 'c1', anydata.ConvertNumber( 3 ) )
, my_parm( 'c3', anydata.ConvertDate( sysdate ) )
doital( 'I', 't1', my_parms( my_parm( 'c1', anydata.ConvertNumber( 77 ) )
, my_parm( 'c2', anydata.ConvertVarchar2( 'goedzo' ) )
, my_parm( 'c3', anydata.ConvertDate( sysdate - 5 ) )
end;
/ -
Is it possible to pass table name as parameter to function calls?
Let's say I would like to retrieve data from table BSAD, BSID, BSIS, BSAS with the exact same WHERE conditions.
I.E.
SELECT SINGLE * FROM bsis
WHERE bukrs = zbukrs
AND belnr = zbelnr
AND gjahr = zgjahr
AND buzei = bseg-buzei.
SELECT SINGLE * FROM bsas
WHERE bukrs = zbukrs
AND belnr = zbelnr
AND gjahr = zgjahr
AND buzei = bseg-buzei.
Is there a way that I could put them into a function and do something like?
perform select_table_bsas using 'bsas'.
perform select_table_bsis using 'bsis'.
and I should get SELECT * FROM passed from the function calls.
Thanks.Hello,
You can try something like this
DATA : LV_DBTAB1 LIKE DD02L-TABNAME.
DATA : DREF TYPE REF TO DATA.
FIELD-SYMBOLS: <ITAB> TYPE ANY TABLE. " used to store dynamic tables
LV_DBTAB1 = 'MARA'. " in caps
CREATE DATA DREF TYPE STANDARD TABLE OF (LV_DBTAB1)
WITH NON-UNIQUE DEFAULT KEY.
ASSIGN DREF->* TO <ITAB> .
* chooses only english values
SELECT * FROM (LV_DBTAB1) INTO TABLE <ITAB> WHERE SPRAS = 'E'.
here, even the internal table is dynamic, but that can be static if you know the structure for sure -
Pass table name as parameter PLS-00357
create or replace
PROCEDURE universal_p (
tab IN VARCHAR2,
col IN VARCHAR2,
whr IN VARCHAR2 := NULL)
IS
TYPE cv_type IS REF CURSOR;
cv cv_type;
val VARCHAR2(32767);
BEGIN
OPEN cv FOR
'SELECT ' || col ||
' FROM ' || tab ||
' WHERE ' || NVL (whr, '1 = 1');
LOOP
FETCH cv INTO val;
EXIT WHEN cv%NOTFOUND;
IF cv%ROWCOUNT = 1
THEN
DBMS_OUTPUT.PUT_LINE (RPAD ('-', 60, '-'));
DBMS_OUTPUT.PUT_LINE (
'Contents of ' ||
UPPER (tab) || '.' || UPPER (col));
DBMS_OUTPUT.PUT_LINE (RPAD ('-', 60, '-'));
END IF;
DBMS_OUTPUT.PUT_LINE (val);
END LOOP;
CLOSE cv;
END;
WHEN I CALL THIS PROCEDURE I got error messasge
ORA-06550: Table,View Or Sequence reference not allowed in this context.
PLS-00357:
Can anyone can help me, please ?
WHEN
Edited by: user6446424 on 11.3.2010 13:59Works for me:
SQL> create or replace
2 PROCEDURE universal_p (
3 tab IN VARCHAR2,
4 col IN VARCHAR2,
5 whr IN VARCHAR2 := NULL)
6 IS
7 TYPE cv_type IS REF CURSOR;
8 cv cv_type;
9 val VARCHAR2(32767);
10 BEGIN
11 OPEN cv FOR
12 'SELECT ' || col ||
13 ' FROM ' || tab ||
14 ' WHERE ' || NVL (whr, '1 = 1');
15
16 LOOP
17 FETCH cv INTO val;
18 EXIT WHEN cv%NOTFOUND;
19 IF cv%ROWCOUNT = 1
20 THEN
21 DBMS_OUTPUT.PUT_LINE (RPAD ('-', 60, '-'));
22 DBMS_OUTPUT.PUT_LINE (
23 'Contents of ' ||
24 UPPER (tab) || '.' || UPPER (col));
25 DBMS_OUTPUT.PUT_LINE (RPAD ('-', 60, '-'));
26 END IF;
27 DBMS_OUTPUT.PUT_LINE (val);
28 END LOOP;
29
30
31 CLOSE cv;
32 END;
33
34 /
Procedure created.
SQL> exec universal_p('EMP','ENAME')
Contents of EMP.ENAME
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
PL/SQL procedure successfully completed.
SQL> select * from v$version
2 ;
BANNER
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - ProductionMax
http://oracleitalia.wordpress.com -
Pass table name as a parameter to function
Is there a way to pass table name as a parameter to functions? Then update the table in the function.
Thanks a lot.
JiaxinHi, Harm,
Thank you very much for your suggestion and example. But to get my program work, i need to realise code like follows:
CREATE OR REPLACE FUNCTION delstu_func(stuno char) RETURN NUMBER AS
BEGIN
EXECUTE IMMEDIATE 'DELETE FROM student s' ||
'WHERE' || 's.student_number' || '=' || stuno;
LOOP
DBMS_OUTPUT.PUT_LINE('record deleted');
END LOOP;
END;
SELECT delstu_func('s11') FROM STUDENT;
The intention is to check if such a function can perform operations such as update, delete and insert on occurence of certain values. When executing the above statement, the system returns an error message:
ERROR at line 1:
ORA-00933: SQL command not properly ended
ORA-06512: at "SCMJD1.DELSTU_FUNC", line 3
Could you tell me where is wrong?
Jiaxin -
hi
Can any one plz suggest me , how to pass
table name (that would be varchar) to a procedure,such that i
should be able to do DML and DDL on the table refered !!EXECUTE IMMEDIATE executes the SQL statement held in a specified
VARCHAR2. So, with a bit of string concatenation, you can make
the statement dynamic, thus:
EXECUTE IMMEDIATE 'DELETE * FROM emp' ;
could become:
EXECUTE IMMEDIATE 'DELETE * FROM '||p_table_name ;
where p_table_name is a VARCHAR2 parameter passed into your
procedure. Check out the PL/SQL User's Guide and Reference,
chapter 10, for full details. -
Passing Table Name to Stored Procedure for From Clause
Is it possible to pass a table name to a stored procedure to be used in the From clause? I have the same task to perform with numerous tables and I'd like to use the same SP and just pass the table name in. Something like this:
=======================================
CREATE OR REPLACE PROCEDURE SP_TEST(
in_TABLE IN VARCHAR2,
AS
V_TABLE VARCHAR2(10);
BEGIN
V_TABLE := 'st_' || in_TABLE; -- in_TABLE is 2-3 character string
SELECT some_columns
INTO some_variables
FROM V_TABLE
WHERE some_conditions...;
END;
=======================================
I'm also using the passed table name to assign to variables in the Select and Where clauses. What I'm getting is an error that V_TABLE must be declared. When I hard code the table name, I don't get any errors, even though I'm also using the same method to assign values in the Select and Where clauses.
Thanks,
Ed HollomanYou need to use dynamic SQL whenever you are swapping out object names (tables, columns).
create or replace procedure sp_test
(in_table in varchar2)
is
-- variables
begin
execute immediate 'select a, b, c from st_' || in_table || ' where x = :xval and y = :yval'
into v_a, v_b, v_c using v_x, v_y;
end; -
Dynamically pick the table names in data flow task SSIS
Hi All,
I want to create a SSIS package which loads the data to a table on the other server every day. I have around 250 tables to load everyday and source and destination table names are available in a metadata table, table names have to read from the metadata
table and data should be loaded. Is there a way that we can configure the source and destination table names dynamically in Data flow task?
I am newbie to SSIS can any help with the solution for this problem.You can do that, not a big deal. The underlying problem is say suppose you constructed a ETL based on some x source and y destination and have put x(3 columns) as source and y destination(3 columns).. As you said if we have choice of dynamically pick the
table names.. ETL might fail when you face below situation
source x(3 columns) destination y (4 columns) and there will be no mapping as it is dynamic. Sometimes mapping also fails even if the source and destination have same number of columns. If you still want to do... follow below steps:
Create two variables:
1.variable1 , datatype string
2.variable datatype string
take one execute sql task, pick your source table names dynamically as you desired from metadata table \
"SELECT sourcetblname as Res FROM @metadata WHERE ID=1" in sql statement and then go to name the result name as Res (I meant same as table alias) and map it to variablename1
And in variable2 go to expression and write "Select * from "+@[User::variable].. and this will be your constructed dynamic command for oledb destination.
And connect that execute sql task to (Data flow task)oledb source and choose data access mode as sql command with variable,and choose variable2. below is the diagram.
- please mark correct answers -
Passing table name to a procedure and then need to open a cursor ..
Hi All,
I have been out of touch in plsql for sometime and need to do something like :
passing table name to a procedure while calling(fp_table_old captures this value) and then need to open a cursor for this table in 'for i in (select * from fp_table_old )', one of the ways I tried is : for i in (execute immediate Lv_sql_query ) but its not working for me, please find the code below for reference, I know I am sounding stupid but I have been very out of touch, please help.
code :
create procedure p_table_compare(fp_table_old in varchar2, fp_table_new in varchar2)
as
Lv_sql_query varchar2(2000);
begin
Lv_sql_query := 'select * from '||fp_table_old;
for i in (Lv_sql_query)
loop
dbms_output.put_line(i.employee_id);
end loop;
end;
Regards
Rahulif I am doing something like this : for i in (execute immediate Lv_sql_query)
I am getting an error which is :
PLS-00103: Encountered the symbol "IMMEDIATE" when expecting one of the following:
. ( ) , * @ % & | = - + < / > at in is mod remainder not
range rem => .. <an exponent (**)> <> or != or ~= >=
My code:
create or replace procedure p_table_compare(fp_table_old in varchar2, fp_table_new in varchar2)
as
Lv_sql_query varchar2(2000);
begin
--dbms_output.put_line('Hello World');
Lv_sql_query := 'select * from '||fp_table_old;
for i in (execute immediate Lv_sql_query)
loop
dbms_output.put_line(i.employee_id);
end loop;
end;
Please help.
Regards
Rahul -
Passing table names as parameters (aka Trouble building a dynamic SQL command)
I am attempting to develop a template for publishing some data, and would like to pass standard table names as parameters to the various queries. What I have created generates the following error:
Msg 137, Level 16, State 1, Procedure spPublishTrans_FlashersCaution, Line 68
Must declare the scalar variable "@tmpTable".
I thought I was declaring it properly ?
Thanks.
DECLARE @FeatureClass as Nvarchar(MAX) = 'Trans_FlashersCaution'
DECLARE @ED as Nvarchar(MAX) = 'edgis.dbo.' + @FeatureClass
DECLARE @tmpTable TABLE
[OBJECTID] [int] NOT NULL,
[Id] [int] NULL,
[Location] [nvarchar](60) NULL,
[Zone] [nvarchar](5) NULL,
[Shape] [geometry] NULL
DECLARE @tmpTableParam AS NVARCHAR (MAX) = @tmpTable
SELECT @tmpTableParam
DECLARE @execquery AS NVARCHAR(MAX)
SET @execquery = 'INSERT INTO' + @tmpTableParam +
[OBJECTID]
,[Id]
,[Location]
,[Zone]
,[Shape]
SELECT
[OBJECTID]
,[Id]
,[Location]
,[Zone]
,[Shape]
FROM' + @ED;
EXECUTE sp_executesql @execqueryAlways PRINT the SQL string prior to execution when developing dynamic SQL script:
PRINT @execquery
--EXECUTE sp_executesql @execquery
Second step, test the printed SQL script for validity.
Dynamic SQL: http://www.sqlusa.com/bestpractices/dynamicsql/
Kalman Toth Database & OLAP Architect
SQL Server 2014 Database Design
New Book / Kindle: Beginner Database Design & SQL Programming Using Microsoft SQL Server 2014
Maybe you are looking for
-
Report Job failed when Bursting is used in BI Publisher 11.1.1.5
The Report Job failed when Bursting is used. error message: [INSTANCE_ID=aimedap1s.1347261753557] [OUTPUT_ID=1421][ReportProcessor]Error rendering documentoracle.xdo.servlet.scheduler.ProcessingException: [ReportProcessor]Error rendering document at
-
Hi, When I connect my iPad to the tv using the hdmi cable the tv display is blurry and unusable. When I play videos however it looks fine. Would anyone know why this is? I have tried other devices and they all look fine. I have also tried on another
-
Qty.difference in MB5S & MR11
Hi All, We are facing one issue regrding above mentioned transactions. For certain PO we found that system is showing the Qty.difference (GR Qty. is more than Invoiced Qty.) whereas in MR11 system throws the error that there is no qty. difference due
-
Update Bapi for Vendor Master Characterstic & Classification
Dear All, I am using the Bapi "BAPI_OBJCL_CREATE" While updating, in return parameter i got the following the message "Assignment exists and is valid" and is not update as well... Thanks in advance..
-
Using iPhone in place of land line
I would like to get rid of my land line, but living in a trilevel house I don't want to have to carry my iPhone from room to room all the time. Is it possible have handsets in several rooms all connected to the iPhone? If they had very limited rang