Need help to write original Victorian SQL of a tricky requirement statement

Hello

I have a table with the following structure

ID Number (10)
Company Varchar2 (100)
Products Varchar2 (4000)

The area of the stored products the list separated by commas in the names of products, which the company deals in.

I want to know the number of companies for each product and organize the product list in descending order of their number

For example, the sample data as follows

The company produced ID
1 a readers of portable barcode of desktop computers, the readers of barcodes, computer laptop, system memory,
2B Handcrafted Wallets leather, holders of credit card in leather, handbag leather, ladies handbag, Designer handbag
C 3 laptops, desktops
4 d, leather wallet, handbag ladies
5 E ladies handbag, ladies, ladies Sandals boots
6 F designer handbag, handbag ladies

Now, here's the result I want

Nr. of companies article
Handbag ladies 4
Handbag designer 2
2 leather handbag
Laptop 2
Desktop computers 2
Memory system 1
1 barcode readers
1 portable barcode readers
1 hand-crafted leather wallets
1 leather credit card holders
Start ladies 1
1 ladies sandals

It would be great if I can achieve in a single SQL.

My database size is also great arround 1.5 million records and on an average about 10 produced by the company

Concerning
Malice

Hello

[This thread | http://forums.oracle.com/forums/thread.jspa?threadID=717813&tstart=25] shows how to split a delimited (like your products column) parts list, one line per element.
There is a solution for Oracle 9. In Oracle 10 (and more) that the solution (using SUBSTR and INSTR) will still work, but I recommend to use

REGEXP_SUBSTR ( products
              , '[^,]+'
              , 1
              , n
              )  AS product

Instead, to get the item of the n - th from the products in the list separated by commas.

Once you have divided the column of the goods in parts, the main request is just

SELECT    product
,         COUNT (*)  AS no_of_companies
FROM      subquery
GROUP BY  product
ORDER BY  no_of_companies  DESC
,         product;

Tags: Database

Similar Questions

  • Need help to write a better SQL query

    Hi gurus,

    Please let me know your best query for the problem below:

    Suppose we have 2 tables in Oracle 10 G database:

    IM1: product and warranty sales records

    A: sales_id

    B: product QTY.

    C: quantity of product

    D: Service QTY.

    E: Service amount

    IM1 table:

    a b c d and e

    --  --  ----  --- ---

    1 1 100 1 10

    2 1 150 1 70

    3 2 500 1 100

    4 1 100 0 0

    IM2: brand and product guarantee service term associated with record sales

    A: sales_id

    G: the Service life

    P: brand product of

    Z: flag of product/Service

    IM2 table:

    a    g               p          z

    --  ----------    -----------   -----

    1 sony NULL p

    1 monthly NULL g

    Dell 2 p, NULL reference

    Reg 2 g NULL

    NULL lenovo 3 p

    3 monthly NULL g

    Sony NULL 4 p

    Then, he must bring the "term of Service" and "Brand product" in line with the sales table, as below:

    ID h_qty h_amnt g_qty g_amnt brand term

    --  -------  -----------  --------  ----------  ---------    ----------

    1 1 100 1 10 sony monthly

    2 1 150 1 70 dell Reg

    3 2 500 1 100 lenovo monthly

    4 1 100 0 0 sony NULL

    What I wrote myself is as below, but I want to know if there is a better idea to make the query more reliable, because real paintings are big and my query is slow.

    SELECT DISTINCT

    ID of the s.a,

    s.b h_qyt,

    s.c. h_amnt,

    Virginia g_qty,

    Sager g_amnt

    brand of the PDP,

    term of r.g

    Of

    (SELECT s.*, PDP FROM s im1, im2 p WHERE s.a = p.a. PDP AND IS NOT NULL).

    IM2 p,

    IM2 g

    WHERE s.a. = p.a.

    AND s.a. = g.a

    AND (p.z = 'p' AND WINS = 'g')

    OR (p.z = 'p' AND WINS = 'p' AND sagehomme = 0 AND s.p = pp)

    ORDER BY 1;

    Here you will find the table scripts:

    create table im1 (a number, b, c number, number d, e number);
    create table im2 (a number g char (10), char (10) p, z (1) tank);
    insert into values im1 (1,1,100,1,10);
    insert into values im1 (2,1,150,1,70);
    insert into values im1 (3,2,500,1,100);
    insert into values im1 (4,1,100,0,0);

    Insert in im2 values (1, null, 'sony', 'p');
    Insert in im2 values (1, 'Monthly', null, 'g');
    Insert in im2 values (2, null, 'dell', 'p');
    Insert in im2 values (2, 'Reg', null, 'g');
    Insert in im2 values (3, null, 'lenovo', 'p');
    Insert in im2 values (3, 'Monthly', null, 'g');
    Insert in im2 values (4, null, 'sony', 'p');

    something like below

    Select x.a as id, x.b as h_qty, x.c as h_amnt, Eliane as g_qty, x.e as g_amnt, min (y.p) as min (y.g) as mark

    -min (y.p) compared to (x.a partition) as min (y.g) on (x.a partition) as the term mark
    of im1, im2 XY
    where x.a = y.a
    Group of x.a, x.b, x.c, Eliane x.e

    Edited: putting aggregation function instead of the function min min Analytics

  • I need help to write a script that detects the first instance of a paragraph style and then change

    I need help to write a script that detects the first instance of a paragraph style and then he goes to a different paragraph style.  I don't necessarily need someone to write all this, by the biggest problem is to find how to find just the first instance of the paragraph style.  Any help would be greatly appreciated, thank you!

    Hello

    then try this with your active doc:

    ....................

    myDoc var = app.activeDocument;

    mStyle var = myDoc.paragraphStyles.item ("PS_NameToFind"); change the name to paraStyle

    var mStyle_1 = myDoc.paragraphStyles.item ("PS_NameToChange"); change the name to paraStyle

    var mFrames = myDoc.pages.everyItem ().textFrames.everyItem () .getElements ();

    app.findTextPreferences = null;

    app.findTextPreferences.appliedParagraphStyle = mStyle;

    for (var k = 0; k)< mframes.length;="">

    {

    currFound = mFrames [k] .findText ();

    If (currFound.length > 0)

    currFound [0] .paragraphs [0] .appliedParagraphStyle = mStyle_1;

    }

    app.findTextPreferences = null;

    ................

    Rgds

  • Need help to write a sub query

    Our environment - Oracle 10 g

    Hi all
    Need help to write a sub query to reach him here are examples of data using which iam trying to replace the value column in the table based on two other columns in the same table

    Examples of data

    ClaimNo flag LineNo Procedurecode
    100 01 N MN4567
    100 02 Y 7863
    100 03 N MN8976
    100 04 Y 9000
    101 01 Y 8954
    101 02 N MN6754
    101 03 N MN7654
    101 04 Y 8976
    102 01 Y 1234
    102 02 Y 2345
    102 03 Y 3456
    102 03 Y 4567

    Each column of ClaimNo has several rows of data. But if column procedurecode for a claimNo starts with MN then all values associated with the claimno for the flag column should replace N

    If the data must become like below

    ClaimNo flag LineNo Procedurecode
    100 01 N MN4567
    100 02 N 7863
    100 03 N MN8976
    100 04 N 9000
    101 01 N 8954
    101 02 N MN6754
    101 03 N MN7654
    101 04 N 8976
    102 01 Y 1234
    102 02 Y 2345
    102 03 Y 3456
    102 03 Y 4567


    Thank you

    See the example:

    with t as (
                  select 100 ClaimNo, '01' LineNo, 'N' Flag, 'MN4567' Procedurecode from dual
        union all select 100, '02', 'Y', '7863' from dual
        union all select 100, '03', 'N', 'MN8976' from dual
        union all select 100, '04', 'Y', '9000' from dual
        union all select 101, '01', 'Y', '8954' from dual
        union all select 101, '02', 'N', 'MN6754' from dual
        union all select 101, '03', 'N', 'MN7654' from dual
        union all select 101, '04', 'Y', '8976' from dual
        union all select 102, '01', 'Y', '1234' from dual
        union all select 102, '02', 'Y', '2345' from dual
        union all select 102, '03', 'Y', '3456' from dual
        union all select 102, '03', 'Y', '4567' from dual
    )
    select
        claimno,
        lineno,
        flag,
        case
          when count(decode(substr(procedurecode,1,2),'MN',1)) over(partition by claimno)>0
            then 'N'
          else flag
        end new_flag,
        procedurecode
    from t
    

    Kind regards
    Sayan M.

  • Need help to write to Oracle and SQL Server in the Oracle triggering

    We have a third which feeds data for us. Their client application feeds directly to some source tables in our Oracle database 10g. We have triggers on those tables that sort and treat lines as they come.

    We have a new operation and try to write some of these incoming data now to a SQL Server database through heterogeneous services - essentially the same exact data in two databases. I have a related database that works very well for the selection, but I've never tried to write Oracle PL/SQL to write in a DB SQL Server 2008. My first attempt was met with the following error: "ORA-02047: impossible to join the current distributed transaction.

    I found another thread where they say that the only way to do it is by using a stand-alone transaction, but they do not give an example. Here is the section of relaxation that I use:
      select to_char(new_date,'MM-DD-YYYY') into sql_txt from dual;
      insert into mancamp_location@sqlweb
           ("UnitID", "ManCampID", "Lat", "Long", "UpdateDT", "VehSpeed", "VehDirection", "Landmark")
        values (v_truck, f_unit, f_lat, f_long, sql_txt, f_spd, f_dir, f_ldmk);
    Can someone point me to a way to accomplish this simple insertion?

    An example of a standalone trigger is:

    Suppose you have a table in Oracle:

    CREATE TABLE emp_sal
    (
    EMPNO NUMBER 4,
    SAL NUMBER (7.2));

    and a similar table in a SQL server:
    SQL Server:

    CREATE TABLE emp_sal
    (
    EMPNO NUMERIC (4).
    SAL NUMERIC (7.2));

    Then, you can create an insert trigger that replicates the data:
    CREATE OR REPLACE TRIGGER dg4odbc_repl AFTER INSERT ON emp_sal
    FOR EACH LINE
    DECLARE
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    INSERT INTO 'emp_sal"@MSODBCSQLSERVER_DG4ODBC_EMGTW_1123_DB '.
    VALUES (: new.empno,: new.sal);
    COMMIT;
    END;
    /

    -Note the validation, otherwise risk of ORA-6519

    When you now insert a record into the Oracle database:
    insert into emp_sal values (1234, '1200,89');
    the trigger is activated and inserts the record in SQL Server:
    Select * from 'emp_sal"@MSODBCSQLSERVER_DG4ODBC_EMGTW_1123_DB;
    EMPNO, SAL
    ----- -------
    1234 1200.89

    It works fine when you post data insert, but as soon as restore you the insert only data Oracle will be cancelled - data will remain as long as the independent transaction dedicated to its SQL Server insert:

    insert into emp_sal values (1384, '1200,89');
    Rollback;
    Select * from emp_sal;
    EMPNO, SAL
    ----- -------
    1234 1200.89

    Select * from 'emp_sal"@MSODBCSQLSERVER_DG4ODBC_EMGTW_1123_DB;
    EMPNO, SAL
    ----- -------
    1234 1200.89
    1384 1200.89

    So I strongly recommend to use the DG4MSQL gateway which is able to participate in distributed transactions and allows validation/restore transactions.

    DG4ODBC lie on OTN (http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html-online check out the "See all" link for your favorite platform), cloud of delivery of software Oracle (https://edelivery.oracle.com/) or "My Oracle Support". My Oracle support welcomes the latest version 11.2.0.3. In My Oracle Support goto patches and updates, then search for 11.2.0.3 data set Patch 10404530patch: 11.2.0.3.0 PATCH SET for ORACLE database SERVER, choose your preferred platform and see the Readme which CD contains the gateway software.

    Published by: kgronau on April 24, 2012 08:44

  • Need help to write a sql

    Hi all

    I have a table with 2 fileds, say Patch, Applied_date

    Table example is below:

    Patch Applied_date
    ==================
    111 1 January 10
    222 1st February 10
    333 1 March 10
    444 2 January 10
    555 1st January 12
    666 3 January 10


    I want a query to display the output as below.

    I have search for "where patch in (111,222,777,888).

    I expect the output to be


    patch Applied_date
    ================
    111 1 January 10
    222 1st February 10
    777 not applied * 777 is not in the table, I want the applied to the display a date not applied *.
    not applied 888 * 888 dosent column exists in the table, even in this case I want in the result and its
    column (Applied_date) corresponding apply do not.


    Can someone write a sql to do this.

    I can write a PL/SQL. I want a sql.

    Thank you
    Prasad

    Published by: user13062453 on February 18, 2012 12:10

    Create list of patches in a table and use an outer join:

    with patch as (
                   select 111 patch,to_date('1-Jan-10','dd-mon-rr') applied_date from dual union all
                   select 222,to_date('1-Feb-10','dd-mon-rr') from dual union all
                   select 333,to_date('1-Mar-10','dd-mon-rr') from dual union all
                   select 444,to_date('2-Jan-10','dd-mon-rr') from dual union all
                   select 555,to_date('1-Jan-12','dd-mon-rr') from dual union all
                   select 666,to_date('3-Jan-10','dd-mon-rr') from dual
                  ),
         list  as (
                   select 111 patch from dual union all
                   select 222 from dual union all
                   select 777 from dual union all
                   select 888 from dual
                  )
    select  l.patch,
            nvl(to_char(p.applied_date,'dd-Mon-yy'),'Not applied') applied_date
      from      patch p
            right join
                list l
              on l.patch = p.patch
    /
    
         PATCH APPLIED_DAT
    ---------- -----------
           111 01-Jan-10
           222 01-Feb-10
           777 Not applied
           888 Not applied
    
    SQL> 
    

    SY.

  • need help to write sql code

    Hi all

    I need to write a sql that retrieves data from the status table and check for this time in the ESHIFT table if the flag was or not. If is there, then it will keep the record as it is Furthermore, there

    did not understand at the time the flag was N suppose ESHIFT table has one record where you N 13:00:01-13:30 then the status register which is 13:00-13:59 min 59 s, we should get 13:00 - 13: records of 00:00 1 and 2 of 13:30:01-13:59 min 59 s

    create table ESHIFT (From_date date, date, to_date, flag varchar2 (2));

    insert into ESHIFT values (' 1 February 12 09:00 ", February 1, 12 13:20 ', 'Y');

    insert into ESHIFT values (' 1 February 12 13:20:01 ", 1 February 12 13:30 ',' don't);

    insert into ESHIFT values (' 1 February 12 13:30:01 ", February 1, 12 16:00 ', 'Y');

    SELECT * from eshift;

    create table status (date of From_date, to_date date, status number);

    insert into values of status (1 February 12 11:00 ', February 1, 12 12:00 ', 1);

    insert into values of status (1 February 12 12:00:01 ', February 1, 12 12:20 ', 2);

    insert into status values ("1 February 12 12:20:01", 1 February 12 12:59:59 ', 1);

    insert into status values ("1 February 12 13:00", February 1, 12 13:59:59 ', 1);

    insert into status values ("1 February 12 14:00", February 1, 12 14:59:59 ', 2);

    SELECT * STATUS;

    In the case above should get sql

    1 FEBRUARY 12 11:00 1ST FEBRUARY 12 12:00 1

    FEBRUARY 1ST, 12 12:00 1ST FEBRUARY 12 12:20 2

    FEBRUARY 1ST, 12 12:20:01, 1 FEBRUARY 12 12:59:59 1

    FEBRUARY 1ST, 12 13:00 1ST FEBRUARY 12 13:20 1

    FEBRUARY 1ST, 12 13:30 1 FEBRUARY 12 13:59:59 1

    FEBRUARY 1ST, 12 14:00 1 FEBRUARY 12 14:59:59 2

    It will be really great if someone can help me how I can get the desired result.

    Thank you very much in advance.

    Please provide instructions creating table and data. It makes it so much easier to answer.

    I think you want:

    Select (s.from_date, e.from_date) greatest from_date, less (s.to_date, e.to_date) to_date, s.status

    s status e eshift join on s.from_date < e.to_date="" and="" s.to_date=""> e.from_date and e.flag = 'Y '.

    order by 1

  • Need help to write sql query

    I am trying to write the SQL for a single recordset.

    I have a table with all the info from the standard article and an item_colorID.

    I have a table with 2 columns, item_colorID and color_ID color_lookup

    I have a table with 2 columns, color_ID colors and color

    I want to join the tables and filter it so that a repeat region shows dynamic data by the name of article, thumb, description, price

    and also a dynamic list/menu populated by color

    filtered so that each element is in the list/menu only available element colors.

    I have tried different variations of this sql

    SELECT * items INNER JOIN color_lookup ON color_lookup.item_colorID = items.item_colorID INNER JOIN colors ON colors.color_ID = color_lookup.color_ID WHERE items.itemCatID = 3 ORDER BY items.itemName

    but the list/menu shows each color choice, multiplied by the number of items in this color

    That is to say white will show 80 + times.

    Thanks for your help,

    Jim balthrop

    Hi JB, I think I understand the situation, but of course, I'm not familiar with the interface of the cart software you are using. It seems that you will not be able to use the choice "research from the recordset" because the color is a different Recordset. You can't really understand the color in the main recordset because it would cause the main repeating region show the item once for each available color, which is not what you want.

    I also see that the drop-down color is in its own form. If you have placed this process in the main form, would be the behavior recoginize it and treat it differently? In other words, the cart accepts entry options outside the main form element it uses:

    
    

    I don't know that the shopping cart software contains other methods to add to the cart you can be forced to use.

    What shopping cart software are you helping? They have a forum which you could get more targeted assistance?

  • Need help to write a SQL query complex

    I have the source tabe as below

    -> SOURCE_TABLE
    NAME     CUST_ID     SVC_ST_DT     SVC_END_DT 
    TOM        1               31/08/2009      23/03/2011 
    DOCK       2               01/01/2004      31/05/2010 
    HARRY      3               28/02/2007      31/12/2009 
    I want to load as target table below
    -> TARGET_TABLE
    NAME     CUST_ID                     SVC_ST_DT      SVC_END_DT 
    TOM      1           31/08/2009      31/12/2009 
    TOM      1           01/01/2010      31/12/2010 
    TOM      1           01/01/2011      23/03/2011 
    DOCK      2           01/01/2004      31/12/2004 
    DOCK      2           01/01/2005      31/12/2005 
    DOCK      2           01/01/2006      31/12/2006 
    DOCK      2           01/01/2007      31/12/2007 
    DOCK      2           01/01/2008      31/12/2008 
    DOCK      2           01/01/2009      31/12/2009 
    DOCK      2           01/01/2010      31/05/2010 
    HARRY      3           28/02/2007      31/12/2007 
    HARRY      3           01/01/2008      31/12/2008 
    HARRY      3           01/01/2009      31/12/2009 
    Is it possible to write a SQL query that returns the data in the same way above the target table.

    Published by: AChatterjee on April 30, 2012 07:14

    Published by: AChatterjee on April 30, 2012 07:14

    Or like this...

    SQL> ed
    Wrote file afiedt.buf
    
      1  with t as (select 'TOM' as NAME, 1 as CUST_ID, date '2009-08-31' as SVC_ST_DT, date '2011-03-23' as SVC_END_DT from dual union all
      2             select 'DOCK', 2, date '2004-01-01', date '2010-05-31' from dual union all
      3             select 'HARRY', 3, date '2007-02-28', date '2009-12-31' from dual)
      4  --
      5  -- end of test data
      6  --
      7  select name, cust_id, svc_st_dt, svc_end_dt
      8  from (
      9        select name
     10              ,cust_id
     11              ,greatest(svc_st_dt, add_months(trunc(svc_st_dt,'YYYY'),yr*12)) as svc_st_dt
     12              ,least(svc_end_dt, add_months(trunc(svc_st_dt,'YYYY'),(yr+1)*12)-1) as svc_end_dt
     13        from t
     14             cross join (select rownum-1 as yr
     15                         from   dual
     16                         connect by rownum <= (select extract(year from max(svc_end_dt)) - extract(year from min(svc_st_dt)) + 1 from t)
     17                        )
     18       )
     19  where svc_st_dt <= svc_end_dt
     20* order by 2, 3
    SQL> /
    
    NAME     CUST_ID SVC_ST_DT            SVC_END_DT
    ----- ---------- -------------------- --------------------
    TOM            1 31-AUG-2009 00:00:00 31-DEC-2009 00:00:00
    TOM            1 01-JAN-2010 00:00:00 31-DEC-2010 00:00:00
    TOM            1 01-JAN-2011 00:00:00 23-MAR-2011 00:00:00
    DOCK           2 01-JAN-2004 00:00:00 31-DEC-2004 00:00:00
    DOCK           2 01-JAN-2005 00:00:00 31-DEC-2005 00:00:00
    DOCK           2 01-JAN-2006 00:00:00 31-DEC-2006 00:00:00
    DOCK           2 01-JAN-2007 00:00:00 31-DEC-2007 00:00:00
    DOCK           2 01-JAN-2008 00:00:00 31-DEC-2008 00:00:00
    DOCK           2 01-JAN-2009 00:00:00 31-DEC-2009 00:00:00
    DOCK           2 01-JAN-2010 00:00:00 31-MAY-2010 00:00:00
    HARRY          3 28-FEB-2007 00:00:00 31-DEC-2007 00:00:00
    HARRY          3 01-JAN-2008 00:00:00 31-DEC-2008 00:00:00
    HARRY          3 01-JAN-2009 00:00:00 31-DEC-2009 00:00:00
    
    13 rows selected.
    
  • Need help to write the SQL query

    Hello
    Please help me to write a query. My requirement is as below.

    Hello
    I have a table say XYZ in the following format.

    product_id local min_order_quntity
    ========================================
    1 en 10
    1 ch 10
    2 en 20
    2 ch 20
    3 en 30
    3 ch 30
    4 en 40
    4 NC 10

    Now I want to find the product_id where min_order_quantity is different for cn and locale

    now I want the result of the following

    product_id local min_order_quantity
    =============================================
    4          en          40
    4 ch 10

    This is different for local in and cn for product_id 4 min_order_quantity

    min_order_quantity should be the same for both the locale(en,ch) for any product_id.

    I want to find the product_id where min_order_quantity is different for ch and fr local

    Thank you..

    Hello

    This query should do the job

    select * from xyz t1
    where exists ( select 1 from xyz t2 where t2.product_id = t1.product_id and
                   t2.locale != t1.locale and t2.min_order_quantity != t1.min_order_quantity );
    

    See you soon

  • Satellite A300-1EG: need help to write module fan control ACPI NHC

    Hello

    I need assistance with writing module NHC allowing me to adjust the speed of the fan always at max level.
    The reason why a desire to do this is high time on the CPU and the GPU.

    I find guide to do something like that, but it of for laptops asus and records of fans and time does not match.

    http://help.notebookhardwarecontrol.NET/ACPI/HOWTO/nhcAsusM2N/index.htm

    My laptop is Toshiba A300-1EG

    Thanks for the help and sorry for my bad English

    I think you're going in the wrong direction. As you probably all know it works automatically and Toshiba made laptop computers to function at an optimal level. If you have problems with this older model A300 you should take standard steps and clean it. It can be done on a career path.
    Laptop can be disassembled, cleaned. CPU fat can also be renewed.

    After doing all this laptop will be clean, laptop can catch its breath and all hardware components can be properly cooled. There is therefore no need to change anything, especially values not original in the BIOS or anything related to the GPU.

    I have the same machine. It works still fairly quiet, but one day, I want to do the same thing.

  • Need help to write a program for the acquisition of signals.

    Hello

    I need to write a program that will do the following:

    1 acquire two signals simulated,

    2. make 10 averages the signal,

    3. filter the signal,

    4. display the signal in its raw form and the power spectrum (fft),

    5. save the data using writing to the file vi

    I tried it for awhile, but there's always something does not... None of the experts LabVIEW here can help me?

    Thank you 1 million.

    -Deet

    No one here is going to do your homework for you. Please join what you have written so far and explain the specific problem that you are experiencing.

  • Need help bridge database for MS SQL Server, error ORA-28546 configuration problems

    Dear all,

    I'm trying to configure Oracle to MS SQL Server(I don't have admin access to the MS SQL Server) database gateway.  When I try to test the dblink connection, I get the following error.

    I published select * from dual@xyz;

    ORA-28546: initialization of the connection failed, probable Net8 admin error

    ORA-28511: interruption of the RPC connection to heterogeneous remote agent using SID = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST=localhost) (PORT = 1521)) (CONNECT_DATA = (SID = dg4msql)))

    ORA-02063: preceding 2 lines of xyz

    28546 0000 - ' failed to initialize connection, unlikely Net8 admin error.

    My setup is as follows.

    1 oracle 11 GR 2 under Oracle Linux 6, the same gateway version is installed on the same server but different base directory.

    2 oracle DB base directory is u01/app/oracle/product/11.2.0/dbhome_1, gateway home directory is/u01/gateway.

    3. I use the same file listener.ora for db and the entry door.

    4. the content of my listener.ora, tnsnames.ora and the initdg4msql.ora is below.

    /U01/app/Oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

    LISTENER =

    (DESCRIPTION_LIST =

    (DESCRIPTION =

    #(ADDRESS = (PROTOCOL = IPC) (KEY = EXTPROC1522))

    (ADDRESS = (PROTOCOL = TCP (PORT = 1522))(HOST = db.abc.com.tw))

    )

    )

    MSSQL =

    (DESCRIPTION_LIST =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost) (PORT = 1521))

    )

    )

    SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

    (GLOBAL_DBNAME = db.abc.com.tw)

    (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)

    (SID_NAME = orcl)

    )

    )

    SID_LIST_mssql =

    (SID_LIST =

    (SID_DESC =

    (SID_NAME = dg4msql)

    (ENVS = LD_LIBRARY_PATH = / u01/gateway/dg4msql/pilot/lib: / u01/gateway/lib)

    (Program name = / u01/gateway/bin/dg4msql)

    )

    )

    /U01/app/Oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

    LISTENER_ORCL =

    (ADDRESS = (PROTOCOL = TCP (PORT = 1522))(HOST = db.abc.com.tw))

    ORCL =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP (PORT = 1522))(HOST = db.abc.com.tw))

    (CONNECT_DATA =

    (SERVER = DEDICATED)

    (SERVICE_NAME = orcl.abc.com.tw)

    )

    )

    dg4msql =

    (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521))

    (CONNECT_DATA = (SID = dg4msql))

    (HS = OK)

    )

    /U01/gateway/dg4msql/Admin/initdg4msql.ora

    HS_FDS_CONNECT_INFO=[192.168.0.1]:1433//XIETEST

    # replacement connect format is the name of host/serverinstance/databasename

    HS_FDS_TRACE_LEVEL = 255

    HS_FDS_RECOVERY_ACCOUNT = RECOVERY

    HS_FDS_RECOVERY_PWD = RECOVERY

    the dblink is created with the following statement.

    CREATE DATABASE LINK "xyz.abc.COM.TW".

    CONNECT TO ITS IDENTIFIED BY

    With the HELP of "dg4msql";

    Couple of other things I did to check the above works.

    [oracle@db admin] $ ping 192.168.0.1

    PING 192.168.0.1 (192.168.0.1) 56 (84) bytes of data.

    64 bytes from 192.168.0.1: icmp_seq = 1 ttl = 61 time = 7.61 ms

    64 bytes from 192.168.0.1: icmp_seq = 2 ttl = 61 time = 7,41 ms

    ^ C

    -ping 192.168.0.1 - statistics

    2 packets transmitted, 2 received, 0% packet loss, time 1818ms

    RTT min/avg/max/leg = 7.417/7.516/7.615/0.099 ms

    [oracle@db admin] $ tnsping dg4msql

    AMT Ping utility for Linux: Version 11.2.0.1.0 - Production on 2013-SEPT-11 10:53:11

    Copyright (c) 1997, 2009, Oracle.  All rights reserved.

    Use settings files:

    /U01/app/Oracle/product/11.2.0/dbhome_1/network/admin/SQLNET.ora

    TNSNAMES adapter used to resolve the alias

    Try to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SID = dg4msql)) (HS = OK))

    OK (0 msec)

    [oracle@db admin] $ lsnrctl status mssql

    LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 2013-SEPT-11 10:54:23

    Copyright (c) 1991, 2009, Oracle.  All rights reserved.

    Connection to (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST=localhost) (PORT = 1521)))

    STATUS of the LISTENER

    ------------------------

    Alias mssql

    Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

    11-SEP-2013 start date 10:09:46

    Uptime 0 days 0 h 44 min 37 sec

    Draw level off

    Security ON: OS Local Authentication

    SNMP OFF

    Parameter Listener of the /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora file

    The listener log file /U01/app/Oracle/diag/tnslsnr/DB/MSSQL/alert/log.XML

    Summary of endpoints listening...

    (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST=127.0.0.1) (PORT = 1521)))

    Summary of services...

    Service 'dg4msql' has 1 instance (s).

    Instance of 'dg4msql', status UNKNOWN, has 1 operation for this service...

    The command completed successfully

    Obviously, I'd like to get this configuration to work, but I have also a couple other questions about this configuration.

    1. for the installation of the bridge, he wants to run the root.sh script.  the script root.sh as to what follows.

    Enter the full path of the local bin directory: [/ usr/local/bin]:

    The 'dbhome' file already exists in the usr.  Overwrite it? (y/n)

    [n]: n

    The 'oraenv' file already exists in the usr.  Overwrite it? (y/n)

    [n]: n

    The 'coraenv' file already exists in the usr.  Overwrite it? (y/n)

    [n]: n

    the above answer is correct?

    Thanks for reading.

    The strace shows:

    2796 open ("/ u01/app/oracle/diag/tnslsnr/db/mssql/trace/mssql.log", O_WRONLY |) O_CREAT | O_APPEND, 0660) = 12

    9564 access ("/ u01/app/oracle/product/11.2.0/dbhome_1/dg4msql/admin/initdg4msql.ora", F_OK)

    2796 write (12, "2013-SEPT-11 15:02:44 * (CONNECT_"..., 175 ")")

    9564 <... access="" resumed="">) =-1 ENOENT (no such file or directory)

    2796 <... write="" resumed="">) = 175

    2796 close (12

    9564 brk (0x14a3000) = 0x14a3000

    2796 <... close="" resumed="">) = 0

    2796 poll ([{fd = 8, events = POLLIN |}]) POLLRDNORM}, {fd = 11, events = POLLIN |} [POLLRDNORM}, {fd-=-1}, {fd = - 1}]-1, 4

    9564 access ("/ u01/app/oracle/product/11.2.0/dbhome_1/dg4msql/log/dg4msql_agt_9564.trc", F_OK) =-1 ENOENT (no such file or directory)

    9564 access ("/ u01/app/oracle/product/11.2.0/dbhome_1/dg4msql/log/dg4msql_agt_9564.trc", F_OK) =-1 ENOENT (no such file or directory)

    9564 statfs ("/ u01/app/oracle/product/11.2.0/dbhome_1/dg4msql/log/", 0x7fff91f005b8) =-1 ENOENT (no such file or directory)

    9564 open ("/ u01/app/oracle/product/11.2.0/dbhome_1/dg4msql/log/dg4msql_agt_9564.trc", O_WRONLY |) O_CREAT | O_TRUNC, 0666) =-1 ENOENT (no such file or directory)

    => so that it always uses the database as Oracle_home House

    With this info, I rechecked the listener and saw that you are missing the ORACLE_HOME setting in the dg4msql section of SID. Please correct your entry to mssql_sid to:

    SID_LIST_LISTENER =

    (SID_LIST =

    (SID_DESC =

    (GLOBAL_DBNAME = db.abc.com.tw)

    (ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1)

    (SID_NAME = orcl)

    )

    )

    SID_LIST_mssql =

    (SID_LIST =

    (SID_DESC =

      (ORACLE_HOME = / u01/bridge)

    (SID_NAME = dg4msql)

    (ENVS = LD_LIBRARY_PATH = / u01/gateway/dg4msql/pilot/lib: / u01/gateway/lib)

    (Program name = / u01/gateway/bin/dg4msql)

    )

    )

    Then please stop and restart the mssql listener and check again.

    -Klaus

  • Need help to write a script that opens files, removes layers and sous-calques

    Hey all,.

    I'm a noob to the community of script, and what I try to do is file edit commands that share the same names of layers and sublayers. I have a few questions that would be incredibly useful if I could have answered.

    I'm not sure how to define a script too call out of the layers that have been created without script. I need to create a variable for the existing layers and leave the script to know what their names are in the files?

    For example, I have three files which have each layer named 'cutlayer', 'trimlayer', 'fold' and 'work '. I need to write a script that opens three files, deletes the layer 'fold' of each file, and then move the layer "trimlayer" in his own sublayer in 'work' (the base layer can be on the top so reorganization sublayers is not necessary to worry about something). I do not understand how to write the script because I couldn't find examples in the documentation for the script provided on the adobe website which has worked with existing files.

    It's my shot at what I'm trying to do, with English fill in the blanks of what I do not know how to script. If anyone can help me understand this point, I would really appreciate it!

    app.documents.openDlg (prompt, filter, MultiSelect);  the user opens the associated files

    If (documents.length > 0) //run the script through each document individually

    {

    sourceDoc = activeDocument;

    delete the "fold" sourceDoc layer

    move the "trimlayer" in the layer "work."

    remove the underlayment 'path' of layer "work."

    Run the script through each document

    Save the new file name folder in the new parallel to the current folder on the hard disk

    Go out and spend in each document until there is no more

    }

    create new document

    Place documents published in different layers in the new document, with a distance between them, optimize the space on a 51 "x 51" work plan, using as little of the artboard as possible. "

    All comments are things basically, I do not know how and am trying to figure out how to do, so if anyone has a second to explain some of these things, I would really appreciate it!

    Thanks again!

    I know it of very frustrating when his apprenticeship and things don't go as planned, but understand that it is quite confusing as it is and do not add more confusion to the mix by using other tools than those provided. I mean JSLint, it might be useful with GENERAL javascript syntax, but Adobe's Javascript implementation is another animal, or another language, always JavaScript, but intended to be run by its own engine. JSLint has no idea what "layers", or "pathItems" are, it will trigger errors when he sees the objects, it does not recognize.

    .. .in learning... not to take baby, write a single line of code and run... If it works, write another line of code

    Try this version (always in the ESTK),'re missing you a few "++", and you do not change "documents" with "docs" in a certain place

    var docs = File.openDialog("Select Files to Open", "*.ai", true);
    
    var idx = 0;
    
    for (idx = 0; idx < docs.length; ++idx) {
    
        var doc = app.open(docs[idx]);
    
        var myCounter = 0;
    
        for (myCounter = 0; myCounter < doc.layers.length; myCounter++) {
    
            doc.layers[myCounter].locked = false;
    
        }
    
        doc.layers.getByName('Crease').remove();
    
        doc.layers.getByName('Regmark').remove();
    
        doc.layers.getByName('Artwork').pathItems[0].remove();
    
        doc.layers.getByName('Through Cut').hasSelectedArtwork = true;   
    
        doc.layers.getByName('Through Cut').pathItems[0].strokeColor = doc.swatches.getByName("Black").color;   
    
        doc.layers.getByName('Through Cut').move(doc.layers.getByName('Artwork'), ElementPlacement.INSIDE);
    
    }
    
  • Need help with the creation of SQL table

    Hi all

    I created a table, a month back. Now, I need to create another table in the same structure.
    Is there a way for dat I can get the script from the table I created earlier and use the same to create another.
    Or y at - it another way, so that we can create a table with the same structure of the existing table.

    Help, please.

    Kind regards
    Mohan

    Discover the function [DBMS_METADATA. GET_DDL | http://download.Oracle.com/docs/CD/B19306_01/AppDev.102/b14258/d_metada.htm#i1019414].

    Example:

    SQL> SET LONG 5000
    SQL> SELECT DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT') FROM DUAL;
    
    DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')
    --------------------------------------------------------------------------------
    
      CREATE TABLE "SCOTT"."EMP"
       (    "EMPNO" NUMBER(4,0),
            "ENAME" VARCHAR2(10),
            "JOB" VARCHAR2(9),
            "MGR" NUMBER(4,0),
            "HIREDATE" DATE,
            "SAL" NUMBER(7,2),
            "COMM" NUMBER(7,2),
            "DEPTNO" NUMBER(2,0),
             CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
      USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"  ENABLE,
             CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
              REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE
       ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
      TABLESPACE "USERS"
    

    Published by: Centinul on January 11, 2010 08:01

Maybe you are looking for