Query to table in Database Link returns value from local table
Hi
I made a databaselink (Create database link db_a.world connect to db_a identified by <user> using 'db_a.world')
Then I query a table, connected as a user in db_b.world (this is our developer database - identical to db_a): Select count(*) from table@db_a.world.
When I get the result - it comes from the database I am logged in to (db_b)! - This is easy to check, because when I run select count(*) from table - it shows the same number. When I connect to the remote database, the same query shows another (correct) number.
When I created the database link, Oracle demanded a loopback clause. Why is that, and can this be the reason for the strange behaviour?
Thanx
Anders
Narvik, Norway
Hi Anders,
A loopback database link is when you want to test connecting to the same database as say a different user. It can be used for testing purposes. Creating a database link doesn't require a loopback clause. The reason why you are getting the same row count as db_b.world because db_a.world has been created as a loopback link.
In the example you have Create database link db_a.world connect to db_a identified by <user> using 'db_a.world' , the clause after 'connect to' is meant to be the username and the clause after 'identified by' is meant to be the password.
So, create a regular database link like this:
create database link db_a_link connect to <user> identified by <passwd> using <service name>
You shouldn't get an error message that the loopback clause has to be specified. Then try querying and hopefully it will work.
-Raj
Similar Messages
-
SQL - Select Help - Case When? Return Value from Second Table?
Hi - next to folks on this board I am probably somewhere between a Beginner and an Intermediate SQL user.
Ive been using a case when statement in plsql to find "all those who's status in any program was cancelled during a specific time, but have become or are still active in a second program"
So, Im effectively trying to return a value from a second table in a case when, but its not liking anthing other than a declared text like 'Yes' or 'No'.
Here is the select statement - is there another way to do this where I can get the results I need?
case when pp.party_id in (select pp1.party_id -- Cancelled clients Active in another program
from asa.program_participation pp1,
asa.curr_prog_participation_status cpps1
where pp1.program_participation_id = cpps1.program_participation_id
and pp1.party_id = pp.party_id
and cpps1.code_value = 'ACT')
then 'Yes' else 'No' end as Active_in_Other_Prg
So - in place of 'Yes' i basically want the program that they are active in or pp1.program_id, else Null
It is possible that the client can be active in more than one program as well.
Any assistance is greatly appreciated, i explored with if's and decodes but I cant get anything to work.
BateseySounds like an outer join. See ora doc: Joins
select p.*
, q.party_id
, q.program_id
from table_with_party_id p
, ( select pp1.party_id -- Cancelled clients Active in another program
, pp1.program_id
from asa.program_participation pp1,
asa.curr_prog_participation_status cpps1
where pp1.program_participation_id = cpps1.program_participation_id
and pp1.party_id = pp.party_id
and cpps1.code_value = 'ACT') q
where p.party_id = q.party_id ( +)
Note: In the example above there shoudn't be a space between the ( and +), but the forum software automagically converts this to
The outer join will link show all records from the p table and only records from q if the party_id matches, ie q.party_id and q.program_id will be null if there is no match.
edit: added program_id -
Query based report to pick up the value from differences table
Hi,
I am trying to pick up the value from change log differences feild but since it is system variable i am unable to pick it.which table i should pick up to get that .
Regards-
Monica.Hi Monica,
This would be a tough job if you know the structure of the historical record tables. You need to familiar with all those A tables first. Any changes to one of the record would create a instance of the record before change. AITM is for OITM, AIT1 is for ITM1 etc. Which tables are you looking for?
Thanks,
Gordon -
How to create and execute a function whose return value is a table
hi folks ,
i would like know how to create and execute a function whose return value is a table ,
am new to pl/sql ,
my statement for the function is
SELECT ct.credential_code, c.expiration_date
FROM certifications c, credential_types ct
WHERE ct.crdnt_id = c.crdnt_id
AND c.person_id = person_id;
i would like to have the result of the above query as return value for the function.
Thanks in advance ,
Ashok.chi Ps ,
Can you please do small sample ,
that would help me in clear understanding
thanks in advance
ashok.c -
How to Sort by the length of the returned value from a query.
Hi,
I was wondering if it is possible to sort by the length of the returned value from a query?
For example if I want to get a list of people with the name 'Samuel', I would like to short by how short the length of the whole name is.
Sort by length of the name in SQL
Samuel Syda
Samuel Indranaka
Samuel Johnsons
Samuel Longhenderson
Thank you.Hi,
Sorting is done by an ORDER BY clause at the end of the main query.
In most cases, you can ORDER BY any expression, even f it is not in the SELECT clause. In this case, it sounds like you just need:
ORDER BY LENGTH (name_column)
I hope this answers your question.
If not, 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.
Post your query, using an ORDER BY clause like the one above, and point out where that query is producing the wrong results, and explain, using specific examples, how you get the right results from the given data in those places.
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 -
Need of SQL query in selecting distinct values from two tables
hi,
I need a query for selecting distinct values from two tables with one condition.
for eg:
there are two tables a & b.
in table a there are values like age,sex,name,empno and in table b valuses are such as age,salary,DOJ,empno.
here what i need is with the help of empno as unique field,i need to select distinct values from two tables (ie) except age.
can anybody please help me.
Thanks in advance,
RatheeshNot sure what you mean either, but perhaps this will start a dialog:
SELECT DISTINCT a.empno,
a.name,
a.sex,
b.salary,
b.doj
FROM a,
b
WHERE a.empno = b.empno;Greg -
How to dynamically get default value from a table column
Hi all,
Here's my problem: Our front end application sends insert and update queries to a pl/sql package. I've got a procedure that gets a PL/SQL table with all the column names an values, a table-name and a primary key name and value. That procedure creates an insert or update statement. So far, so good.
Now the problem: our front end doesn't know what the default value for a column is. So when a number field doesn't get a value in the front-end, it's inserted with a value '0' though is should ben NULL. My sollution for this is to know the default value of a column: when there's a default of '0', then the value that will be inserted is '0'. When there's no default value and the column can ben NULL, it'll be inserted as NULL. if the column has a not null constraint, a '0' will be inserted.
Ofcourse I can get the default value from the system-views all_tab_columns or user_tab_columns, but our application is installed at some 100 clients, and has various database installations. Most of the times, the tables are in the same schema as our procedure that performs the insert or update, but sometimes some of the tables are in another schema (in the same database) and also sometimes some tables are stored in another database. In all these situations, a synonym for that table exists in the schema.
Is there a api function or procedure that I can call to get the default value of a column? I looked at dbms_sql and dbms_metadata, but those packages don't give me that perticular information. if not, I'll stuck with the 'does table exists in schema' yes->use table, no query user_synonyms to look for the owner of the table (and database link) and query all_tab_columns to get the default value. Only this seems a bit overkill to me.
I hope I'm clear enough? And please don't reply with "don't do inserts this way"! I know, this is not the most optimal sollution, but it does gives us a couple of advantages in our application...there is no way that I can think of, apart from what you have already discovered (i.e. views), where you can determine if a column has a defuault value defined against it.
The other option is triggers, but I guess doing that across 600 tables would not be an option, and besides I stay clear of triggers.
A different approach therefore, if you cannot pre-determine the data, is to consider a post problem handler, hence I suggested the use of an exception handler.
The exception handler works regardless of whether the statement is dynamic or not.
SQL> truncate table abc;
Table truncated.
SQL>
SQL> declare
2 NULLVAL exception;
3 pragma exception_init(NULLVAL, -01400);
4
5 begin
6
7 begin
8
9 execute immediate 'insert into abc (y) values (1)';
10
11 exception
12 when NULLVAL then
13 -- handle the error
14 execute immediate 'insert into abc (x,y) values (0,1)';
15
16 end;
17
18 commit;
19
20 end;
21 /
PL/SQL procedure successfully completed.
SQL>
SQL> select * from abc;
X Y
0 1 -
CE function to get distinct values from Column table
Hi All,
Could you please let me know the appropriate CE function to get the distinct values from column table.
IT_WORK = SELECT DISTINCT AUFNR FROM :IT_WO_DETAILS;
Thank you.Hi,
If you have 10g, you can use Model( with model performance is better than connect by )
Solution
========================================================================
WITH t AS
(SELECT '0989.726332, 1234.567432, 3453.736379, 3453.736379, 0989.726332, 3453.736379, 1234.567432, 1234.567432, 0989.726332'
txt
FROM DUAL)
SELECT DISTINCT TRIM(CHAINE)
FROM T
MODEL
RETURN UPDATED ROWS
DIMENSION BY (0 POSITION)
MEASURES (CAST( ' ' AS VARCHAR2(50)) AS CHAINE ,txt ,LENGTH(REGEXP_REPLACE(txt,'[^,]+',''))+1 NB_MOT)
RULES
(CHAINE[FOR POSITION FROM 1 TO NVL(NB_MOT[0],1) INCREMENT 1] =
CASE WHEN NB_MOT[0] IS NULL THEN TXT[0] ELSE REGEXP_SUBSTR(txt[0],'[^,]+',1,CV(POSITION)) END );
=========================================================================
Demo
=======================================================================
SQL> WITH t AS
2 (SELECT '0989.726332, 1234.567432, 3453.736379, 3453.736379, 0989.726332, 3453.736379, 123
4.567432, 1234.567432, 0989.726332'
3 txt
4 FROM DUAL)
5 SELECT DISTINCT TRIM(CHAINE)
6 FROM T
7 MODEL
8 RETURN UPDATED ROWS
9 DIMENSION BY (0 POSITION)
10 MEASURES (CAST( ' ' AS VARCHAR2(50)) AS CHAINE ,txt ,LENGTH(REGEXP_REPLACE(txt,'[^,]+',''))+1 NB_MOT)
11 RULES
12 (CHAINE[FOR POSITION FROM 1 TO NVL(NB_MOT[0],1) INCREMENT 1] =
13 CASE WHEN NB_MOT[0] IS NULL THEN TXT[0] ELSE REGEXP_SUBSTR(txt[0],'[^,]+',1,CV(POSITION)) END );
TRIM(CHAINE)
3453.736379
1234.567432
0989.726332
SQL>
======================================================================== -
How to get edited row values from ADF table?
JDev 11.
I have a table which is populated with data from Bean.
I need to save changes after user make changes in any table cell. InputText is defined for table column component.
I have defined ValueChangeListener for inputText field and AutoSubmit=true. So when user change value in inputText field, method is called:
public void SaveMaterial(ValueChangeEvent valueChangeEvent) {
getSelectedRow();
SaveMaterial(material);
This method should call getSelectedRow which take values from selected table row and save them into object:
private Row getSelectedRow(){
RichTable table = this.getMaterialTable();
Iterator selection = table.getSelectedRowKeys().iterator();
while (selection.hasNext())
Object key = selection.next();
table.setRowKey(key);
Object o = table.getRowData();
material = (MATERIAL) o;
System.out.println("Selected Material Desc = "+material.getEnumb());
return null;
Problem is that getSelectedRow method doesnt get new (edited) values, old values are still used.
I have tried to use ActiveButton with same method and it works fine in that case. New values are selected from active row and inserted into object.
JSF:
<af:table var="row" rowSelection="single" columnSelection="single"
value="#{ManageWO.material}" binding="#{ManageWO.materialTable}">
<af:column sortable="false" headerText="E-number">
<af:inputText value="#{row.enumb}" valueChangeListener="#{ManageWO.SaveMaterial}" autoSubmit="true"/>
</af:column>
<af:column sortable="false" headerText="Description">
<af:inputText value="#{row.desc}" valueChangeListener="#{ManageWO.SaveMaterial}" autoSubmit="true"/>
</af:column>
</af:table>
<af:activeCommandToolbarButton text="Save" action="#{ManageWO.EditData}"/>
What is a correct place from where save method should be called to get new (edited) values from ADF table?
Thanks.Did you look into the valueChangeEvent?
It has oldValue and newValue attributes.
public void SaveMaterial(ValueChangeEvent valueChangeEvent) {
Object oldVal = valueChangeEvent.getOldValue();
Object newVal = valueChangeEvent.getNewValue();
// check if you see what you are looking for.....
getSelectedRow();
SaveMaterial(material);
}Timo -
How to return values from a BSP page to Javascript
Hi All,
I want to call a BSP page which reads a single value from a table and returns that value I want the Javascript in the HTML code to get the value from the BSP page.
Can you kindly let me know how I can return the value from the BSP page to JavaScript.
Kindly please provide me a simple code of a BSP page and the Javascript
Thanks
KarenHi,
you need 3 elements to make the javascript code read the value in any field in the table: table´s name, line and column. This is how your code could look like:
script language="javascript>
var row = 0;
function display(){
row = row + 1;
campo = 'tabla1_' + row + '_4'; " <-- table, line, column
valor = document.getElementById(campo).value;
</script>
ROW works as a counter. You have in variable valor the value of the field and can do with it what you want, perhaps display it with ALERT. I am reading the values from field 1 to n in column 4 in table TABLA1. Pay attention to the '_' in the concatenation of field´s name. The table in my BSP is very simple:
<htmlb:tableView id = "tabla1"
table = "<%= mytable %>"
width = "100%"
allRowsEditable = "X"/>
and somewhere I must call function display in my javascript code:
<htmlb:button id="boton" text="Texto aqui" onClientClick="display()" />
So, give it a try. -
How to get return values from stored procedure to ssis packge?
Hi,
I need returnn values from my stored procedure to ssis package -
My procedure look like and ssis package .Kindly help me to oget returnn value to my ssis package
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [TSC]
-- Add the parameters for the stored procedure here
@P_STAGE VARCHAR(2000)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
--SELECT <@Param1, sysname, @p1>, <@Param2, sysname, @p2>
truncate table [INPUTS];
INSERT
INTO
[INPUTS_BASE]
SELECT
[COLUMN]
FROM [INPUTS];
RETURN
END
and i am trying to get the return value from execute sql task and shown below
and i am taking my returnn value to result set variableYou need to have either OUTPUT parameters or use RETURN statement to return a value in stored procedures. RETURN can only return integer values whereas OUTPUT parameters can be of any type
First modify your procedure to define return value or OUTPUT parameter based on requirement
for details see
http://www.sqlteam.com/article/stored-procedures-returning-data
Once that is done in SSIS call sp from Execute SQL Task and in parameter mapping tabe shown above add required parameters and map them to variables created in SSIS and select Direction as Output or Return Value based on what option you used in your
procedure.
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
Getting Return values from RFC function call with visual basic
Hi,
I am creating a sample app to connect to a SAP system which call its RFC functions created with ABAP. It was known that the function will return more than 1 return values.
SAP Function name ==> "ZFMTP_RFC_GET_RESULT"
Export parameters (to SAP):
- Student Name [char 10] ==> "STUNAME"
- Student ID [char 20] ==> "STUID"
Return values (From SAP):
- Results [char 10] ==> "RESULT"
- Remarks [char 200] ==> "REMARKS"
i have managed to get sample codes for connecting and call a RFC function with vb but they only get a return value. How do i retrieve multiple return values like the above function "RESULT" and "REMARKS"?
Here's my vb code to accessing the function
Dim R3 As Object
Dim FBFunc As Object
Dim returnFunc As Boolean
Dim connected As Boolean
R3 = CreateObject("SAP.Functions")
R3.Connection.Client = "000"
R3.Connection.User = "BCUSER"
R3.Connection.Password = "minisap"
R3.Connection.Language = "DE"
R3.Connection.System = "dtsystem"
R3.Connection.Applicationserver = "xxx.xxx.xxx.xxx"
connected = R3.Connection.Logon(0, True)
If connected <> True Then
MsgBox("Unable to connect to SAP")
End If
FBFunc = R3.add("ZFMTP_RFC_GET_RESULT")
FBFunc.exports("STUNAME") = "Jonny"
FBFunc.exports("STUID") = "12345"
returnFunc = FBFunc.Call() <<== How do i get the return value? or RESULT and REMARKS of the RFC Function?
thanks alot.
Edited by: Eugene Tan on Mar 4, 2008 7:17 AMHi Gregor,
Thanks for the link....i am having some doubts with the codes, hope you can clarify them for me if you know the codes..
Below is the code snippet.
Set impReturn = CHPASS_FN.Imports("RETURN") <<=== is RETURN the standard keyword to get a return object?
expPassword.Value = currpass
expNewPass.Value = newpass
expFillRet.Value = "1"
''' Call change password function
If CHPASS_FN.Call = True Then
outFile.Write (", Called Function")
Message = impReturn("MESSAGE") <<==== So if i have 3 return values..i just replace with the return value variable names?
outFile.WriteLine " : " & Message
Else
outFile.Write (", Call to function failed")
End If
thanks alot...all your help is very appreciated. -
Using Database link to go from one database to another
Hi all,
I am trying to create a SQL-query which connects to two
different databases.
I have created a Database link, which points from on database to
the other, and have supplied the database name, username and
password.
when I try to run following query I get error ORA:02085, MY_LINK
is connecting to SIEBN1S.(domain).com
SELECT COUNT(*) FROM MY_TABLE@MYLINK;
additional info:
2 databases are exact copies on different servers (SIEBN1S and
N1SSIEB)
the MY_TABLE exists in both databases and I have rights on it in
both, I can separately connect to both databases and look into
MY_TABLE
I have created the database link using following statement (in
the N1SSIEB db):
create database link MYLINK connect to <usr> identified by <pwd>
using 'SIEBN1S'
any help is welcomeYou have set GLOBAL_NAMES to TRUE in your init.ora file. This
means your database link must have the same name as the database
you want to connect to ie SIEBN1S.(domain).com.
alternatively you can change GLOBAL_NAMES. to test this try
'ALTER SESSION SET GLOBAL_NAMES=FALSE'.
hth, APC -
Can retrieve value from one table, but not the other (exception thrown)
Hi
I hope some friendly soul can help me out here. I have a local Access database file. I am able to get a value from all tables except for one, which throws this error: "System.NullReferenceException:
Object reference has not been specified to an object".
The rather simple lines of code when working is this:
Dim email As Object
value = MyDataSet.Tables("Table")(0)(1).ToString
Msgbox(email)
However, when simply changing from "Table" to "AnotherTable", the exception is thrown. I
have seriously no idea why. I've made sure the datatypes are the same and that the values are not NULL.
What gives?Hello,
Going with your last reply, you should be accessing data via the strong typed classes that get generated.
Example using Microsoft Northwind database accessing the customers table in a MS-Access database. Note the check for Rows, we could even go farther if we are questioning issue with the data via try-catch statements writing errors to the IDE Output window.
I would highly recommend never referencing rows without first checking if there are rows and secondly never reference columns by ordinal index, always use the column name. One example with ordinal positioning, suppose someone did SomeDataTable.Columns("SomeColName").SetOrdinal(3)
and you expect the ordinal position to be 1 ? things will crash-n-burn. Food for thought :-)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.CustomersTableAdapter.Fill(Me.MainDataSet.Customers)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If MainDataSet.Customers.Rows IsNot Nothing Then
Dim FirstCompanyName As String = MainDataSet.Customers.FirstOrDefault.CompanyName
MessageBox.Show(FirstCompanyName)
Else
MessageBox.Show("No rows in customer table")
End If
End Sub
End Class
In this case we get the first record from below in Button1 Click
Please remember to mark the replies as answers if they help and unmark them if they provide no help, this will help others who are looking for solutions to the same or similar problem. -
Executed Step outcome value from the table
Hi,
How to get the Step outcome value from the table for the executed workitem.
Regards,
Rani.Hi Rani,
For database tables you can refer to tables:
SWWLOGHIST - History of a work item
SWWORGTASK - Assignment of WIs to Org.Units and Tasks
SWWUSERWI - Current Work Items Assigned to a User
SWWWIHEAD - Header Table for all Work Item Types
SWWWIAGENT - Gets agents assigned to a workitem
You can you FMs like SAP_WAPI_GET_WORKITEM_DETAIL, SAP_WAPI_CREATE_WORKLIST as per your requirement.
Hope this helps!
Regards,
Saumya
Maybe you are looking for
-
How to add a column at the end of table in already designed document..?
Hi, I am writing a javascript for adding a column at the end of table in Indesign document. using our plug-in we have created the Indesign document. Each table i want to add one extra column at the end. Is it possible..? please help me if anyone has
-
G/L line item is stored in BSIS but shown in standard trans. as cleared.
Hello Experts, Why is that there are some G/L line items that my program fetch in BSIS so meaning that it is still open but when we check the standard transaction to list G/L line items it shows as cleared. Hope you can help me guys. Thank you and ta
-
How to read EDF files in LabVIEW?
Hi all. I'm trying to read a EDF file (brain signals, EEG) into LabVIEW but I can't figure out how to do it. Would like to meet this challenge without converting the EDF file before processing. Are there someone out there who can help me? I'm using
-
Document tool bar is missing [Something is Missing]
My Documentbar is missing. I don't know if it's the right english word for it, but in Dutch it's called: documentwerkbalk. Since i did something wrong (i don't know what); it's missing. I find it really helpfull, so i want to know how i get it back.
-
When Running F110 i do have some down payment which should be block by the system automatically but problem is that noe the document is not automatically blocked by the system (ZP) Downpayment items (ZP docs XXXXXXX , XXXXXXX, XXXXXXX, XXXXXXXX ) ar