Running sql from a text item

Hi.
I build record groups that display information for the user. These record groups are built on custom SQL that the user can add themselves. As this is open to errors I want to add a "Check Syntax" button.
All it needs to do is run the query that the user types in and ensure it runs successfully and the required columns are in place. The entire SQL statement is held within a text item.
If it errors i want to notify the user of the error that sql would produce,
Any ideas on the best way to acheive this?
Thanks

i think with Dynamic SQL u can do this
Set the query of Text item in a string and execute it using Dynamic query
Execute immediate syntax
Any error comes in Dynamic query return it to user
Baig,
http://baigsorcl.blogspot.com

Similar Messages

  • Run SQL from UNIX

    How could I run sqlplus from an Unix machine?

    If want to Install
    1. Need to Install Oracle Client
    2. Use SQL *PLUS
    or
    If dont want to install
    1. Use iSQLPLUS

  • Remotely running SQL from PowerShell

    Hi
    I work for a Software House where checking files versions, running SQL to check tables is becoming run-of-the mill :)
    I'm very new to PowerShell so far and have just been playing about to find that I can remotely check file-versions ok. Now onto the other side of the coin....running SQL to check tables is the next thing I need to learn.
    Just for a heads-up. Most of the servers I connect to are running MS SQL Server 2003 (unfortanately) which is why I want to remotely check the servers without connecting in via Remote Desktop Session. With MS Server 2003, if I use a Remote Desktop
    Session, I've found that I would have to download PowerShell (v1) and then have to configure it to allow it to run my .ps1 scripts which would also become cumbersome.
    Can anyone give me a start and say how to remotely connect to and SQL database and then run a simple SELECT statement from PowerShell please. I can then build my powershell scripts up from there.
    Kind Regards
    Matt

    Hi
    I've tried this script but get the error below if anyone can help.
    # Get SQL rows if they exist
    $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
    $SqlConnection.ConnectionString = "Server=\\10.1.2.3;Database=THEHOUSE;Integrated Security=True;User Id=Joe123;Password=password123"
    $SqlConnection.Open()
    $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
    $SqlCmd.CommandText = "SELECT * FROM TABLEX WHERE TRANS_TYPE='ACG'"
    $SqlCmd.Connection = $SqlConnection
    $dbname = $SqlCmd.ExecuteScalar()
    $SqlConnection.Close()
    Write-output "Database is " $dbname
    The error I get is:
    Exception calling "Open" with "0" argument(s): "A network-related or instance-specific error occurred while
    establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the
    instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL
    Network Interfaces, error: 25 - Connection string is not valid)"
    At C:\PS1scripts\Get SQL table data.ps1:5 char:1
    + $SqlConnection.Open()
    + ~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : SqlException
    Exception calling "ExecuteScalar" with "0" argument(s): "ExecuteScalar requires an open and available
    Connection. The connection's current state is closed."
    At C:\PS1scripts\Get SQL table data.ps1:9 char:1
    + $dbname = $SqlCmd.ExecuteScalar()
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : InvalidOperationException

  • How to run SQL from PL/SQL?

    hi,
    i want to run sql script from PL/SQL,
    in my PL/SQL,i have given the path within the double quotes,
    @"/usr/local/pbiace/current/bin/handle.sql" but while running the script im getting some exception.
    pls guide me.....

    What is your OS.
    First example, divide three part scritps and then
    cat beforepart.sql account.sql afterpart.sql | sqlplus user/password@connectstring
    type beforepart.sql+account.sql+afterpart.sql | sqlplus user/password@connectstring
    Second example, divide two part scripts.
    acc2.sql
    declare HandleN varchar(20);
    begin
    select pbhandlenamelower INTO HandleN from pb_handle where pbhandleid in(select max(pbhandleid)
    from pb_handle where ha_customerentityid in (select acct_customerentityid from account
    where acct_accountid = &1 )) AND pbmainhandleflag=1 ;
    do.pl('==============================') ;
    do.pl('Handle Name: ' || HandleN ) ;
    do.pl('==============================') ;
    EXCEPTION
    WHEN OTHERS THEN
    do.pl('No rows selected');
    END;
    exit
    main.sql
    set serveroutput on
    varaiable variable1 NUMBER
    DECLARE
    data varchar2(20);
    BEGIN
    data:='&1';
    select BI_ACCOUNTID into :variable1 from pb_bill_info where PBBTN=data;
    do.pl('BI_ACCOUNTID');
    do.pl('------------');
    do.pl(:variable1);
    end;
    @acc2 :variabl1
    Third Example
    create or replace directory SCRIPTS_DIR as 'path name'
    acc3.sql (Only 1 statement, don't include into-clause and ';')
    select pbhandlenamelower from pb_handle where pbhandleid in(select max(pbhandleid)
    from pb_handle where ha_customerentityid in (select acct_customerentityid from account
    where acct_accountid = :variable1 )) AND pbmainhandleflag=1
    main.sql
    set serveroutput on
    DECLARE
    data varchar2(20);
    variable1 NUMBER;
    HandleN varchar(20);
    p_sql varchar2(32000) := '';
    File_Handle UTL_FILE.FILE_TYPE;
    Read_line varchar2(4000);
    BEGIN
    data:='&1';
    select BI_ACCOUNTID into variable1 from pb_bill_info where PBBTN=data;
    do.pl('BI_ACCOUNTID');
    do.pl('------------');
    do.pl(variable1);
    File_Handle := UTL_FILE.FOPEN('SCRIPTS_DIR','acc3.sql','r');
    loop
    UTL_FILE.GET_LINE(File_Handle, Read_line);
    exit when no_data_found;
    p_sql := p_sql || Read_line || chr(32) ;
    end loop;
    UTL_FILE.FCLOSE(File_Handle);
    execute imediate p_sql into HandleN using varaiable1;
    do.pl('==============================') ;
    do.pl('Handle Name: ' || HandleN ) ;
    do.pl('==============================') ;
    EXCEPTION
    WHEN OTHERS THEN
    do.pl('No rows selected');
    END;
    Or Some many other Examples and those are maybe more simple, only if you would analyze your business requirements.

  • Getting Error when running sql from concurrent program in R12

    Hi All,
    I created concurrent program and attached EXECUTABLE which executable method as SQL plus .
    Using this program I am running one SQL file in R12 when I am running I am getting below error .
    Same king of program I have define in 11i and running it is running can anyone please help me if I need to do any set ups or security thing to resave this problem.
    ERROR:
    ORA-01017: invalid username/password; logon denied
    SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    SP2-0306: Invalid option.
    Usage: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    where <logon> ::= <username>[<password>][@<connect_identifier>] | /
    SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
    Concurrent Manager encountered an error while running SQL*Plus for your concurrent request 3162719.
    Review your concurrent request log and/or report output file for more detailed information.
    Executing request completion options...
    Finished executing request completion options.
    Regrds,
    Sridhar.

    user12000862 wrote:
    Hi all,
    Thanks a lot giving replay below simple code I have put in my SQL file for testing Eventhough it is giving error .
    Table which i am using in Apps schema only.
    declare
    BEGIN
    insert into BRCD_HZ_DNB_XTBL_TEST values (666,'Y','547','Y','12254','TESTING','N','Y');
    commit;
    END;
    /Try this instead
    WHENEVER SQLERROR EXIT FAILURE ROLLBACK;
    WHENEVER OSERROR EXIT FAILURE ROLLBACK;
    insert into BRCD_HZ_DNB_XTBL_TEST values (666,'Y','547','Y','12254','TESTING','N','Y');
    commit;
    exit;HTH
    Srini

  • Run Procedure From A List Item

    I am using Apex 3.2
    I have created a list of the shared components, which I will be using as a menu on my Home page.
    Is it possible to fire a procedure, once a certain item on the list is clicked. I do not want to put the process on the page that the list directs to, as I only want the procedure to run if they have come from the Home page and not any other page.
    Any ideas appreciated.
    Gus
    Edited by: Gus C on Feb 3, 2011 12:59 AM

    Hi Gus,
    I'm not sure about adding to a list item, but you could create an application item and a couple of application processes that may be able to do that.
    First, create an Application Item called G_LAST_PAGE
    Second, create an Application Process that runs "On Load: Before Header (page template header)" that is a PL/SQL Anonymous Block of whatever your code needs to be. Make this conditional on "Value of Item in Expression 1 = Expression 2" and enter G_LAST_PAGE into Expression 1 and enter 1 into Expressioin 2.
    Then create a second Application Process that has a higher sequence number than the first one. This should run "On Load: ..." and should be a PL/SQL Anonymous Block of:
    BEGIN
    :G_LAST_PAGE := :APP_PAGE_ID;
    END;This should be unconditional
    As the user moves from page to page (using your list item menu or by changing the URL or via links/branches), the value of G_LAST_PAGE gets updated. But before the update happens, the first process checks the value of G_LAST_PAGE - if it is 1 (ie, the user has just left page 1), then the process fires. Otherwise, it just proceeds to update G_LAST_PAGE with the page they are are now on.
    Andy

  • Submit Query(SQL) from a text area from a form

    Hi,
    I have a form that has a big text area, while users can type in the SQL statement/query.
    When user click on the button(say Submit). He/She should able to use the SQL query they input to query the tables.
    In order to implement this, should I create a new page that will pass the value of the text area (SQL statement) and display it in that new page?
    Or Is there a quick/easier way to do this?
    Thanks,
    Angela

    Angela,
    You could create a report region of type PL/SQL function returning SQL querry, and then return the value of your text area item, so you region source would be something like this:
    return :PX_MY_QUERY;
    When creating that report region, you'll have to use generic column names, since at design time, the query isn't known.
    Regards,
    Marc

  • How to run SQL from OMB+

    For any of you who wanted to be able to query the database from OMB+ in order to gather object metadata or whatever as part of your deployment scripts, you have no doubt noticed (to your frustration) that this functionality is not provided.
    Sure, you can trigger execution of a sql/plus script as an external process, but that's hardly interactive now is it?
    the good news is that OMB+ DOES provide access to the standard java package, which of course means that you can utilize the standard java.sql classes, which means - JDBC.
    Here is a very simple starting point for you that provides simple connect, disconnect, and run query abilities. There is no exception handling and you'd need to add other functionality to execute prepared statements like procedure calls, or do DML like insert/update statement.
    Still, I hope that you find it of use as a starting point - if you need it. For documentation on the java.sql interfaces, go to the Sun Java Docs page at: http://java.sun.com/j2se/1.3/docs/api/ and scroll down to the java.sql package in the top left pane.
    Cheers,
    Mike
    package require java
    proc oracleConnect { serverName databaseName portNumber username password } {
       # import required classes
       java::import java.sql.Connection
       java::import java.sql.DriverManager
       java::import java.sql.ResultSet
       java::import java.sql.SQLWarning
       java::import java.sql.Statement
       java::import java.sql.ResultSetMetaData
       java::import java.sql.DatabaseMetaData
       java::import oracle.jdbc.OracleDatabaseMetaData
       # load database driver .
       java::call Class forName oracle.jdbc.OracleDriver
       # set the connection url.
       append url jdbc:oracle:thin
       append url :
       append url $username
       append url /
       append url $password
       append url "@"
       append url $serverName
       append url :
       append url $portNumber
       append url :
       append url $databaseName
       set oraConnection [ java::call DriverManager getConnection $url ]
       set oraDatabaseMetaData [ $oraConnection getMetaData ]
       set oraDatabaseVersion [ $oraDatabaseMetaData getDatabaseProductVersion ]
       puts "Connected to: $url"
       puts "$oraDatabaseVersion"
       return $oraConnection
    proc oracleDisconnect { oraConnect } {
      $oraConnect close
    proc oraJDBCType { oraType } {
      #translation of JDBC types as defined in XOPEN interface
      set rv "NUMBER"
      switch $oraType {
         "0" {set rv "NULL"}
         "1" {set rv "CHAR"}
         "2" {set rv "NUMBER"}
         "3" {set rv "DECIMAL"}
         "4" {set rv "INTEGER"}
         "5" {set rv "SMALLINT"}
         "6" {set rv "FLOAT"}
         "7" {set rv "REAL"}
         "8" {set rv "DOUBLE"}
         "12" {set rv "VARCHAR"}
         "16" {set rv "BOOLEAN"}
         "91" {set rv "DATE"}
         "92" {set rv "TIME"}
         "93" {set rv "TIMESTAMP"}
         default {set rv "OBJECT"}
      return $rv
    proc oracleQuery { oraConnect oraQuery } {
       set oraStatement [ $oraConnect createStatement ]
       set oraResults [ $oraStatement executeQuery $oraQuery ]
       # The following metadata dump is not required, but will be a helpfull sort of thing
       # if ever want to really build an abstraction layer
       set oraResultsMetaData [ $oraResults getMetaData ]
       set columnCount        [ $oraResultsMetaData getColumnCount ]
       set i 1
       puts "ResultSet Metadata:"
       while { $i <= $columnCount} {
          set fname [ $oraResultsMetaData getColumnName $i]
          set ftype [oraJDBCType [ $oraResultsMetaData getColumnType $i]]
          puts "Output Field $i Name: $fname Type: $ftype"
          incr i
       # end of metadata dump
       return $oraResults
    #now to run a quick query and dump the results.
    set oraConn [oracleConnect myserver orcl 1555 scott tiger ]
    set oraRs [oracleQuery $oraConn "select name, count(*) numlines from user_source group by name" ]
    #for each row in the result set
    while {[$oraRs next]} {
      #grab the field values
      set procName [$oraRs getString name]
      set procCount [$oraRs getInt numlines]
      puts "Program unit $procName comprises $procCount lines"
    $oraRs close
    $oraConn close

    Oracle may indeed have used OraTCL as the starting point for OMB+, but if so then they have clearly wrapped their own interface around it and hidden the original commands. Now, I suppose that it should be possible to add OraTcl as an external library, however the Oratcl distribution makes use of the TCL "load" command to load their binaries.
    You will quickly find that Oracle has also disabled the standard TCL "load" command in OMB+, thus making very difficult to add third-party plug-in packages.
    If you can find a pure-TCL script db interface similar to OraTcl to manage SQL*Plus connections that doesn't use any of the TCL commands that ORacle has disabled - well then you could probably get those to load as packages.
    Or, like me, you could just use the supplied java interface and code your own as needed.
    Cheers,
    Mike

  • How to generate database text items at run time in oracle forms 6i?

    i have a text item with NUMBER OF ITEMS DISPLAYED=3. My requirement is, i need to generate text items at run time under each TEXT ITEM(3 text items will be there since number of items displayed is 3) and the values will be stored in the database based on the primary key combination. pls help me to solve this pblm

    Hi,
    You cannot generate items dynamically at runtime. The only thing you can do is show and hide item on time. Thay seems that they are generated at run time. Second thing you can do is that you can put items on stack canvas and set visible property of stack canvas to no and at run time set it to visible according to ur condition. Otherwise there is no way. If you find any other way, plz do inform here also.

  • How to do to appear records in a text item when I  run my  form?

    In a form I have a block with BASE TABLE=OPTIUNI_COD.
    In this block I have a text item named DENUMIRE.When I run my form the text item is empty and I use F7 , F8 to have some records in the text item.
    But I want to appear records in this text item when I run my form without use F7,F8.
    How can I do this?
    Please help me!Thank you!

    In a When-New-Form-Instance trigger you can use this:
    Go_Block('your_block');
    EXECUTE_QUERY;

  • How to disable copy option for a text item in oracle forms

    Hello experts,
                  I am using oracle forms 11g with weblogic server 10.3.5 at windows7.I have a text item in my oracle form and I have to disable to being copy from a text item in oracle forms.Actually I have to make two text item.First text item to type a password and another text item is also to type password.Here I want that the data from first text item should not be copy through the use of mouse or keyboard shortcut key.
    thank you
    regards
    aaditya

    Thank You To reply, Actually doing so as you said,My problem would not be solved.This would hide data in text item than I will not be able to copy that but in my case the data should not be concealed.Actually I have to make a Form to  User registration and here is a strictly boundation to have a right email address of user.There would two text items for this purpose as: N_User_Email------> to type email address in text item.Here user would not be able to copy text written from N_User_Email R_User_Email  ------> to type email address again as in N_User_Email.

  • Read a barcode(including line feeds) into text item

    When I scan a bar code from a text item, I am unable to retrieve line feeds that are in a barcode. I need line feeds to retrieve various values encoded in the barcode. When I scan the same code on a notepad, I get output in multi-lines. But, oracle forms is removing the line feeds when I scan barcode in a text item. Please advice. Forms Version is 10g

    It gave me output of 10.
    Original string looks like this with control charactes <LF> and <CR>.
    @<LF><CR>ansi 636049030002dl00410466zn05070057dldcabcde<LF>dcbbcdefjklmw
    I have to get hold of <LF> character because it is used as delimiter for data values in barcode. But, when I scan it in oracle forms item, it is not reading <LF> character. Based on what you suggested, using dump and ascii, it ilooks like it is reading carriage return <CR> as CHR(10) and not <LF>. There is one more <LF> in the string and forms text item is not recognizing it. Dump output is shown below:
    @,^J,A,N,S,I, ,6,3,6,0,4,9,0,3,0,0,0,2,D,L,0,0,4,1,0,4,6,6,Z,N,0,5,0,7,0,0,5,7,D,L,D,C,A,B,C,D,E,D,C,B,B,C,D,E,F,J,K,L,M,W,
    Thanks

  • Text item of varchar2(2000) with vertical scrollbar not displaying properly

    Hi,
    I have a text item of varchar2(2000) with a vertical scroll bar.
    I am populating data into the text item using a forms procedure.
    (Look at the sample code below)
    The problem is the rpadding is NOT displayed properly. I mean
    the detail records are NOT shown straight below their respective column heading
    in the text item. (BUT if I cut this stuff from the text item and paste it in a
    notepad, then the alignment is correct and the data is shown below their
    respective column headings)
    My code is something like below ...
    CURSOR c_get_lab_client_results
    IS
    SELECT res.lr_id lr_id, org.short_name org_name, TO_CHAR(res.specimen_taken_date,'DD-MON-YYYY') std, substr(res.accession_number,1,20) acc_num, res.lr_type lrtype, res.hdc_id hdcid
    FROM bc_organisations org,
    cq_laboratory_results res
    WHERE cli_id = :clients.cli_id
    AND lr_id = :results.lr_id
    AND res.org_id = org.org_id
    ORDER BY lr_id;
    Begin
    -- Header
    SELECT :TRFRDTLS.TRANSFER_DETAILS||RPAD('ORGANISATION',16,' ')||' '||RPAD('SPECIMEN DATE',15,' ')||' '||RPAD('ACCESSION NUMBER',20)||' '||RPAD('RESULTS',16,' ')||chr(10)||chr(10)
    INTO :TRFRDTLS.TRANSFER_DETAILS FROM DUAL;
    -- Detail
    FOR c1 IN c_get_lab_client_results LOOP
    ls_results := RPAD('XXXX',16,' '); -- Just for example
    SELECT :TRFRDTLS.TRANSFER_DETAILS||RPAD(TO_CHAR(c1.org_name),16,' ')||' '||RPAD(c1.std,15,' ')||' '||RPAD(c1.acc_num,20)||' '||ls_results||chr(10)
    INTO :TRFRDTLS.TRANSFER_DETAILS FROM DUAL;
    END LOOP;
    End;
    Thanks in advance.
    Cheers

    Try using a monospace font such as Courier New for the text item.

  • Remove HTML tags from a text area

    Hi, here is my problem:
    I have a form with a text area item; this item is “Display as Editor HTML standard”. So it is possible to enter formatted text with tags HTML. Then I save the text in a table. In the column the text maintain the HTML tags. Afterwards I can put the text in a report, and I can see the formatted text with the tags HTML interpreted.
    But I need also to use that text for other aims, (i.e. sending it in a mail) with the html tags removed.
    Is there any way to remove HTML tags from a text item?
    Regards
    Dario

    From http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:769425837805
       FUNCTION str_html (line IN VARCHAR2)
          RETURN VARCHAR2
       IS
          x         VARCHAR2 (32767) := NULL;
          in_html   BOOLEAN          := FALSE;
          s         VARCHAR2 (1);
       BEGIN
          IF line IS NULL
          THEN
             RETURN line;
          END IF;
          FOR i IN 1 .. LENGTH (line)
          LOOP
             s := SUBSTR (line, i, 1);
             IF in_html
             THEN
                IF s = '>'
                THEN
                   in_html := FALSE;
                END IF;
             ELSE
                IF s = '<'
                THEN
                   in_html := TRUE;
                END IF;
             END IF;
             IF NOT in_html AND s != '>'
             THEN
                x := x || s;
             END IF;
          END LOOP;
          RETURN x;
       END str_html;There's also a reqular expression approach that I've not tried. Remove HTML Tags and parse the text out of it

  • Multiple values from database on a single text item

    i am trying to do the following
    on a single text item in a form
    (under form property pallete->records->number of items displayed is 5) run a triger "when-new-block-instance" with the following pl/sql statement
    declare
    menu_item VARCHAR2(35);
    begin
    select label into menu_item
    from menu_options;
    end;
    however, once i run the form it gives me
    WHEN-NEW-BLOCK-INSTANCE trigger raised unhandeled exception ORA-01422
    however, if in the pl/sql statement contains only
    begin
    execute querry;
    end;
    then it works fine
    The problem i beleive is the fact that the first querry retreives multiple values or recordset instead of A record.
    How can i go arond this and allow the form to list all the values in this form. Eventually i will need to add conditional SQL statments and that is why just execute querry will not work.
    Also, is there a way to dynamically assign a number to "number of records shown" property?
    All help is very much appreciated!
    null

    Hi, Marko
    I teach Forms, and I usually find a bad idea to use SQL statements directly (in particular when you can "make" Forms to do what you want).
    Inside PL/SQL, a SELECT..INTO statement is supposed to select a single row, otherwise an error occurs.
    EXECUTE_QUERY works.
    If by "conditional SQL statements" you mean restricted (filtered) queries, you don't need to write SQL to do this.
    You can set the DEFAULT_WHERE block property to a different value before using EXECUTE_QUERY, like:
    SET_BLOCK_PROPERTY('your_block', DEFAULT_WHERE, 'where menu_id > 100');
    And the answer to your second question is no, you cannot dynamically change the number of records a block is displaying.
    You can limit the number of records your block queries from the database table using Maximum Records Fetched block property (available in Forms 6 and above, not sure about Forms 5). However, this will only work as expected if you set Query All Records to Yes.
    Hope this helps,
    Pedro

Maybe you are looking for

  • Bridge Web Gallery Not loading properly in Browsers   **HAAALP PLZ**

    Ok so here is the deal. Went to Bridge Created Multiple Gallerys Went to Dreamweaver Created a page and inserted all the pertinents and such. Uploaded to my site Was happy..... Good to go right?  Well it looks all good, and the Gallerys perform as th

  • SilverKeeper backup doesn't work correctly with Intel iMac and 10.4.8

    I use SilverKeeper 1.1.4 to backup daily to a LaCie drive. But it will no longer do automatic backups (that is, wake computer from sleep at 6am before I start the day) since I migrated from PowerBook G4 to new Intel iMac 24". It only starts the backu

  • My browsing history stops after yesterday how do i fix this

    Under history there is supposed to be today , yesterday, last 7 days, i think then maybe months . Well my history only has today and yesterday, How do i fix it so by browsing history is remembered longer than that.

  • Can Calendar Alerts Be Changed?

    Hi, I'm a very happy iPhone user, in fact it is probably the best little device I have ever owned. Apart from the main features it has to offer, alot of the enjoyment I get from it is due to the quirky sounds & tones you can choose for a new SMS, and

  • Why does my networked printer have boise idaho as the location?

    I have an HP Laserjet 2840 networked through a router. I gave it an IP address and it works with all 3 computers on the network. but when i go to the print and fax preferences it has boise, idaho as the location. i'm in new york city. it doesn't seem