Help in writing  query few schema objects  from another schema.

Hi Gurus,
Could some one help in writing an sql which will give list of all the object of a schema "genp" visible in another schema "genp_v" and "gen_con" there is an dblink and few grants on those schemas .
i dont have the password of any of those users i have connected as sys and i can not change the password of any of those users..
Any help on this is highly apprciated.
Thanks in advance .

could you please update me for all the objects apart from just the tables .
thank you so much .. it was just out of my head at that moment .
cheers

Similar Messages

  • Need helping in writing query for finding percentage of duration

    Can any one please help in writing query for this.
    The table is like this :-
    ID     Region     Month     Duration
    I1 R1     Jan     80
    I2     R2     Jan     70
    I3     R1     Jan     70
    I4     R3     Jan     40
    I5     R1     Feb     80
    I6     R2     Feb     30
    I7     R3     Mar     100
    I want to write a query to find
    % of duration for each and every region against each and every month.
    Please help in solving this query. I am in urgent need of this.
    Thanks in advance.

    I also have to do in MS Access 2003You also have to ask into an other forum since here it's an Oracle forum, to try to find Oracle solution.
    Nicolas.

  • Query a second form from another form by passing value

    Hi,
    I have two forms. I am trying to query a second form from another form. I have managed to display the query results in the second form by passing value from the first form. I did it according to the details in the Oracle 9ias Portal Technical FAQ html file.
    It works fine when there is already a row in the first form. When I insert a new row in the first form and query the second form which has key from the first form, there is no matching rows displayed which is correct but detail action mode is 'NONE' for all detail rows.
    According to the FAQ, it says the following:-
    "When the called form is started, it executes a query with the supplied condition (in this case, "where deptno=10"). If the query is successful, the matching rows are displayed in Update mode. If no matching rows are found, the form starts in Insert mode."
    It does not happen for me. I get NONE mode for no matching rows. Is this a BUG ? I am working on Portal version 3.0.9.8.0.
    Is there something wrong in the code I wrote ? I would like to have all the detail mode as Insert.
    Here is the following code I wrote on SUCCESSFUL SUBMISSION OF THE FORM.
    declare
    my_url varchar2(1000);
    v_deptno number;
    begin
    v_deptno := p_session.get_value_as_NUMBER(p_block_name => 'DEFAULT', p_attribute_name => 'A_DEPTNO');
    my_url := 'PORTAL30.wwa_app_module.link?p_arg_names=_moduleid&p_arg_values=1268491962&p_arg_names=_show_header&p_arg_values=YES&p_arg_names=deptno&p_arg_values='||LTRIM(TO_CHAR(v_deptno))||'&p_arg_names=_deptno_cond&p_arg_values=%3D';
    go(my_url);
    end;

    Hi,
    The behaviour is OK as in the MD form there are two states "Save" and "Query and Save" and when the form is in "Query and Save" mode that means you can use it for both Query aswell as Save which is decided by your "Master action" if that is None it is used for Query , for Insert you will have to select Insert ,this is the Insert Mode behavior.
    If you open a new MD form that is also in the "Query and Save" the same behaviour will be there.
    Hope this answers your query.
    rahul

  • Cant view objects from another schemas

    Hi everybody!
    I have a 10.1.2 Jdeveloper and a 9.2.4 Oracle database.
    I successfully created a database connection.
    With provided login I can access to tables from another schemas in SQL Worksheet, but I cant see any objects from those schemas in the connection tree.
    What's wrong?

    The Schemas are being filtered so that you only automatically see the schema for the connection that you logged on with. To change the schemas that are visible you need to :
    1) Select the connection name in the Navigator (you should see that it has a filter icon overlaid showing that it is being filtered)
    2) Invoke the context menu and select 'Apply filters'
    3) Shuttle over the other Schemas you wish to see and press OK
    Regards,
    Lisa Sherriff
    JDev QA

  • Help in search query for schema

    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
    PL/SQL Release 10.2.0.4.0 - Production
    CORE     10.2.0.4.0     Production
    TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
      I want to get all function name whoes text having  string like  "prm_fn_xyz ( sss , 'O' , rrrr )
       here xvz is not fixed means we can user "%"  for this xyz  , only prm_fn_ is fixed
       and   parameter of this function  (prm_fn_)  should contain atleast capital  "O"
    thanx

    prm_fn_xyz ( sss , 'O' , rrrr )If this is a procedure and is not used dynimically in the code you can query the user_dependencies.
    select *
      from user_dependencies
    where referenced_name like 'PRM/_FN/_%' escape '/'

  • Referencing object from another form

    I have two forms. The first one (F) uses some objects from the second one (Lib). There is a reference to item of the form Lib in a program unit of the form F as :something:=:blok.item (blok.item is defined in the form Lib).
    Although I have put the form Lib to directory listed in FORMS45_PATH, if I try to open form F, I get message table or view does not exist and then cannot retrieve block B in Lib module. When I try to compile this program unit, I get message bad bind variable.
    They are legacy forms and I need to use them. Can you help me please? What it is necessary to setup to work correctly?
    Thanks
    Jarda

    Hi,
    I hope you might want to change the icon in form 2 based on some attribute value from form 1? If yes, probably you can pass that as a parameter list to form 2 / set a global value. In the form 2's WHEN-NEW-FORM-INSTANCE trigger, you can check the value of the parameter/global value and change the icon as required.
    -Arun

  • Importing Slides and Objects from another Captivate Project

    Hello,
    I'm working in Captivate 4.  I am creating an updated version of a course which was also created in Captivate 4.  The course consists of slides imported from PowerPoint as well as screencaptures from an application.
    To save time, rather than re-creating all the objects, I imported them from the older course.  However, after I did that, any attempt to insert any standard objects (rollover images in this case) gave me an error message and the application shut down.  The file is completely corrupted.  Does anyone have any idea why this happened?  The only other thing I can think of is that I do tend to copy and paste images onto slides (rather than using the insert functionality). Although most of the time, the application allows it, sometimes it locks up the course.  Could that be the culprit?  Any insights would be greatly appreciated! Thanks!

    Hello and welcome to the forum,
    Seems indeed that something got corrupted, could be a slide (or more) or objects. But it is difficult to tell the real cause. To detect the culprit, try to copy to a new blank project (same resolution), but not all slides at once. How did you copy/paste images: from another application or between slides? If it is from a graphical app please use the Insert function to preserve quality.
    Lilybiri

  • Help!!! Sending serialized object to another server/servlet

    I am trying to simply send a serialized bean to a servlet on another server. I have lot's of examples of doing this as a stream and recieving back a stream to output, trouble is, I want to do this as a means of communicating the state of a process from one application kicking off the process on the new application. So when the page is returned, I need to be located on the new server. Here is the stream code I'm using:
    String strUrl = "http://www.myurl.net";
    try {
         URL url = new URL(strUrl);
         HttpMessage msg = new HttpMessage(url);
         BufferedReader in;
         Object beanObj = (Object) myBean;
         MyBean beany = (MyBean) beanObj;
         in = new BufferedReader(new InputStreamReader(msg.sendPostMessage(beany)));
         String inputLine;
         while ((inputLine = in.readLine()) != null) {
         out.println(inputLine + "\n");
         in.close();
    catch(IOException io) {
    out.println("Unable to call the servlet " + io);
    out.close();
    How would I do this if I wanted to send and not come back to the original server?

    Why not create a little daemon to run on Server B (using the Servlet API would make this really easy) that listens for requests from Server A. The Servlet running on Server A would:
    1. Do whatever it needs to do
    2. Open an HttpURLConnection to Server B, use the getOutputStream() method to get a pipe to write serialized data to, couple it with an ObjectOutputStream, and write the session object to it.
    3. Use the sendRedirect() method to redirect the client to Server B.
    Upon receiving a request, the Servlet on Server B would:
    1. Call Servlet.getInputStream() to get the input stream to read objects from.
    2. Couple this with an ObjectInputStream to read objects from.
    3. Read the session object and cast it to the appropriate type.
    4. Stash the session object in a global lookup so it can be retrieved when the client arrives. I don't think the session can be created at this point because the request doesn't originate from the browser.
    Then, finally, the Servlet running on Server B that handles client requests would:
    1. Create a new session
    2. Retrieve the session object from the global data store and stash it in session.
    3. Go on its merry way.
    Hope this was on target and is useful.

  • Trouble writing Query for Pivoting data from a table

    I am having a little trouble writing a query for converting the below table data into a pivot data. I am trying to write a query for which if I give a single valid report_week date as input it should give me the data for that week and also provide two extra columns, one which gives the data of last week for the same countries and the second column which gives the difference of numbers in both the columns(i.e. COUNT - COUNT_LAST_WEEK).
    REPORT_WEEK     DIVISION     COUNT
    9/26/2009     country1     81
    9/26/2009     country2     97
    9/26/2009     country3     12
    9/26/2009     country4     26
    9/26/2009     country5     101
    10/3/2009     country1     85
    10/3/2009     country2     98
    10/3/2009     country3     10
    10/3/2009     country4     24
    10/3/2009     country5     101
    10/10/2009     country1     84
    10/10/2009     country2     98
    10/10/2009     country3     10
    10/10/2009     country4     25
    10/10/2009     country5     102
    For example, if I give input as 10/10/2009, the output should be as give below.
    REPORT_WEEK     DIVISION     COUNT     COUNT_LAST_WEEK     DIFFERENCE
    10/10/2009     country1     84     85     -1
    10/10/2009     country2     98     98     0
    10/10/2009     country3     10     10     0
    10/10/2009     country4     25     24     1
    10/10/2009     country5     102     101     1
    For example, if I give input as 10/3/2009, the output should be as give below.
    REPORT_WEEK     DIVISION     COUNT     COUNT_LAST_WEEK     DIFFERENCE
    10/3/2009     country1     85     81     4
    10/3/2009     country2     98     97     1
    10/3/2009     country3     10     12     -2
    10/3/2009     country4     24     26     -2
    10/3/2009     country5     101     101     0
    Can anyone please shed some light on Query building for the above scenarios.
    Thank you
    SKP
    Edited by: user11343284 on Oct 10, 2009 7:53 AM
    Edited by: user11343284 on Oct 10, 2009 8:28 AM

    I assume there is no gap in report weeks. If so:
    SQL> variable report_week varchar2(10)
    SQL> exec :report_week := '10/10/2009'
    PL/SQL procedure successfully completed.
    with t as (
               select to_date('9/26/2009','mm/dd/yyyy') report_week,'country1' division,81 cnt from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country2',97 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country3',12 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country4',26 from dual union all
               select to_date('9/26/2009','mm/dd/yyyy'),'country5',101 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country1',85 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country2',98 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country3',10 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country4',24 from dual union all
               select to_date('10/3/2009','mm/dd/yyyy'),'country5',101 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country1',84 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country2',98 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country3',10 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country4',25 from dual union all
               select to_date('10/10/2009','mm/dd/yyyy'),'country5',102 from dual
    select  max(report_week) report_week,
            division,
            max(cnt) keep(dense_rank last order by report_week) cnt_this_week,
            max(cnt) keep(dense_rank first order by report_week) cnt_last_week,
            max(cnt) keep(dense_rank last order by report_week) - max(cnt) keep(dense_rank first order by report_week) difference
      from  t
      where report_week in (to_date(:report_week,'mm/dd/yyyy'),to_date(:report_week,'mm/dd/yyyy') - 7)
      group by division
      order by division
    REPORT_WE DIVISION CNT_THIS_WEEK CNT_LAST_WEEK DIFFERENCE
    10-OCT-09 country1            84            85         -1
    10-OCT-09 country2            98            98          0
    10-OCT-09 country3            10            10          0
    10-OCT-09 country4            25            24          1
    10-OCT-09 country5           102           101          1
    SQL> exec :report_week := '10/3/2009'
    PL/SQL procedure successfully completed.
    SQL> /
    REPORT_WE DIVISION CNT_THIS_WEEK CNT_LAST_WEEK DIFFERENCE
    03-OCT-09 country1            85            81          4
    03-OCT-09 country2            98            97          1
    03-OCT-09 country3            10            12         -2
    03-OCT-09 country4            24            26         -2
    03-OCT-09 country5           101           101          0
    SQL> SY.

  • Help Needed Writing Query

    Hi Users,
    I have a table which has the records inserted on every Saturday (i:e on a weekly basis).
    The table "NCIM" has the following records in it
    NODE              INTERFACE      CREATEDATE
    172.29.58.195     4     1/1/2011
    172.29.60.1     11     1/1/2011
    172.16.10.44     3     1/1/2011
    172.29.58.195     4     25/12/2010
    172.29.60.1     11     25/12/2010
    172.16.10.44     3     25/12/2010
    172.29.58.195     2     18/12/2010
    172.29.60.1     8     18/12/2010
    172.16.10.44     5     18/12/2010
    172.29.58.195     6     11/12/2010
    172.29.60.1     22     11/12/2010
    172.16.10.44     7     11/12/2010The requirement is to find, what was the "INTERFACE" value for the particular NODE on the particular window period.
    1) When I run the query any time in the current week (between Jan 1st and Jan 7th 2011) then
    my output should be
    NODE             INTERFACE      CREATEDATE
    172.29.58.195     4     1/1/2011
    172.29.60.1     11     1/1/2011
    172.16.10.44     3     1/1/20112) When I run the query with the condition for the last two week from the current date (subtracting 14 days from current date 4th Jan is Dec 22nd 2010) falling between Dec 18th and Dec 25th. So the output should be
    NODE             INTERFACE       CREATEDATE
    172.29.58.195     2     18/12/2010
    172.29.60.1     8     18/12/2010
    172.16.10.44     5     18/12/2010Can some please help how to accomplish this with the query.
    Thanks.
    RR

    Hi,
    you can use the solution from frank or if you have real dates for the select, you can do it with a simple date_field <to_date('25.12.2010','DD.MM.YYYY') and date_field>=to_date('18.12.2010','DD.MM.YYYY')
    Regards
    Udo
    SQL> create table a_table (interface number,date_field date);
    Tabelle wurde angelegt.
    SQL> insert into a_table (interface,date_field) values(1,to_date('11.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(2,to_date('11.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(3,to_date('11.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(4,to_date('18.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(5,to_date('18.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(6,to_date('18.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(7,to_date('25.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(8,to_date('25.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(9,to_date('25.12.2010','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(10,to_date('01.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(11,to_date('01.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(12,to_date('01.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(13,to_date('08.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(14,to_date('08.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL> insert into a_table (interface,date_field) values(15,to_date('08.01.2011','DD.MM.YYYY'));
    1 Zeile wurde erstellt.
    SQL>
    SQL> select * from a_table where date_field <=sysdate and date_field>=sysdate-7;
    INTERFACE DATE_FIE
    10 01.01.11
    11 01.01.11
    12 01.01.11
    SQL> select * from a_table where date_field <to_date('25.12.2010','DD.MM.YYYY') and date_field>=to_date('18.12.2010','DD.MM.YYYY');
    INTERFACE DATE_FIE
    4 18.12.10
    5 18.12.10
    6 18.12.10

  • Need help in writing ABAP for and Object

    Hi ,
    I am an ABAPer and I need a help related to BW.
    As per the Client Requirement ,I need to write ABAP for object  ZC_MRPAMC.
    what he expects is :
    0MRP_CONTROL is an attribute of 0MAT_PLANT. There can be only one 0MRP_CONTROL per  0MAT_PLANT.
    Assign the attribute value of 0MRP_CONTROL to ZC_MRPAMC per 0MAT_PLANT.
    How to assign value of 0MRP_CONTROL to ZC_MRPAMC per 0MAT_PLANT.
    Kindly  give me the steps.
    Thanks.
    Anu.

    Hi,
    U can use FM RSAU_READ_MASTER_DATA.
    Give as input the info object(I_IOBJNM=0MAT_PLANT) and attribute name(I_ATTRNM=0MRP_CONTROL).
    Output u will get the value of that attribute which u want(E_ATTRVAL=ZC_MRPAMC).
    Hope it helps
    Regards,
    Rathy

  • Help needed writing trigger for deleting records from multipul tables

    i am trying to write a trigger which would help me delete the record from 3 different tables
    lets say i have table a , b and c
    i an trying to write a trigger which would help me delete the same record from table a and c.
    drop trigger az_zzz_trigger;
    create trigger az_zzz_trigger
    before INSERT or UPDATE or DELETE ON az_employ
    FOR EACH ROW
    BEGIN
    IF DELETING then
    delete from za_payroll
    delete from az_salary_audit
    end if;
    end;
    while executing this trigger all data of table za_payroll is delete.
    what should i do so that only the record which i delete from az_employ gets deleted from az_payroll and az_salary_audit

    872959 wrote:
    i am trying to write a trigger which would help me delete the record from 3 different tables
    lets say i have table a , b and c
    i an trying to write a trigger which would help me delete the same record from table a and c.
    drop trigger az_zzz_trigger;
    create trigger az_zzz_trigger
    before INSERT or UPDATE or DELETE ON az_employ
    FOR EACH ROW
    BEGIN
    IF DELETING then
    delete from za_payroll
    delete from az_salary_audit
    end if;
    end;
    while executing this trigger all data of table za_payroll is delete.
    what should i do so that only the record which i delete from az_employ gets deleted from az_payroll and az_salary_auditutilize appropriate WHERE clause

  • Help to write query to get records from specified time TO specified time?

    I have a table which has large data and the table is updated every min,
    Suppose the Table comp(timeid date,sessions varchar2,sid varchar2)
    Here time needs to be checked
    So now i have to write a query which displays records that have been in the table
    for every 5 mins
    default timeframe is sysdate-5 then the lower and upper bound is multiple of 5 i.e
    Suppose now Time and sysdate: 12-sep-2007 1:22:00pm
    From sysdate: 12-sep-2007 1:15:01pm TO sysdate: 12-sep-2007 1:20:00pm
    So i need a query to get the records from 1:15:01pm to 1:20pm.
    Message was edited by:
    user594721

    Explanation is not clear.Please give sample data and expected o/p.
    If you need the data of previous five minutes, do like this...
    SQL> select id, to_char(time,'dd/mm/yyyy hh:mi:ss') time
      2  from test;
            ID TIME
             1 13/09/2007 10:29:55
             1 13/09/2007 10:29:22
             1 13/09/2007 10:20:28
    SQL> select id, to_char(time,'dd/mm/yyyy hh:mi:ss') time,
      2             to_char(sysdate,'dd/mm/yyyy hh:mi:ss') current_time
      3  from test
      4  where time between (sysdate - (5/24/60)) and sysdate;
            ID TIME                CURRENT_TIME
             1 13/09/2007 10:29:55 13/09/2007 10:32:45
             1 13/09/2007 10:29:22 13/09/2007 10:32:45                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • Help in writing query

    There are 2 tables
    EMP Table
    empno salary grade
    100 1000
    200 2000
    300 2200
    400 3500
    500 3700
    600 5200
    700 4000
    800 6500
    Grade table
    grade losal hisal
    A 0 1000
    B 1001 2000
    C 2500 3500
    D 4000 5000
    E 5500 6500
    Now query's output should like
    100 1000 A
    200 2000 B
    300 2200 B
    400 3500 C
    500 3700 C
    600 5200 D
    700 4000 D
    800 6500 E
    If the salary is not in given range then preceding grade should be displayed.
    example is empno with 300
    After retrieving the query results, Update emp table with grades
    Thanks in advance
    Vinay

    Hi,
    this should work
    SQL> update EMP a
    SQL> set a.grade = (select grade from grade b where a.salary between b.losal and b.hisal);
    SQL> select * from EMP;
    EMPNO SALARY GRADE
    100 1000 A
    200 2000 B
    300 2200
    400 3500 C
    500 3700
    600 5200
    700 4000 D
    800 6500 E
    SQL> update EMP a
    SQL> set a.grade = (select max(grade) from grade b where a.salary > b.hisal )
    SQL> where a.grade is null;
    SQL> select * from EMP;
    EMPNO SALARY GRADE
    100 1000 A
    200 2000 B
    300 2200 B
    400 3500 C
    500 3700 C
    600 5200 D
    700 4000 D
    800 6500 E
    null

  • Need help in writing query

    EMP_ID     EMP_NAME
    1     PAULA
    2     JOHN
    3     RADHA
    4     RADHA
    5     RAM
    6     RAM
    7     RAM
    8     PATRICK
    9     PADMA
    10     SALMAN
    Write a query that gives all names that occur more than three times in the company.

    Hi,
    Also, look up the aggregate COUNT function.
    COUNT, GROUP BY and HAVING are all described in the [SQL Language Reference manual|http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/index.htm], though, if you have a textbook, you should look at the textbook first.

Maybe you are looking for

  • Accidentally deleted bonjour from my computer.  iTunes will not open.  Help Please.

    Accidentally deleted Bonjour from my computer.  iTunes will not open.  Running Windows XP. Help please.

  • Possible memory leak in e4x or HTTPService with e4x format

    Hello, I think I have found a memory leak in e4x. In very special cases (=xml) the player swallows the memory. The little test program connects to a web server for an xml file, and the result is converted to an array. The array is displayed in a Data

  • Upgrading a S&S 5.3.0 failover cluster to 5.3.7

    Hi! we need to upgrade our S&S to 5.3.7. Currently we have S&S and DMM 5.3.0 in failover cluster. In pre-prod, were we have no cluster, just a single DMM and a single S&S, we upgraded the S&S easily. But when facing the procedure for upgrading the S&

  • MESSAGE TYPE X in MCEX extractor

    Hi, I have a problem in my Datasource enhancement. Before i never take car about the fact of having clean delta queue tables to uplaod a modification in a datasource append for the cockpit logistics. Now i have the problem on 2LIS_11_VAITM. But what

  • New library has been created and deleted all old photos

    After the update I was asked something about creating a new library, then there was a countdown and the iphoto app is now empty of all photos. I have checked whether it has just created a new library but it hasn't, I also cannot find my iphoto librar