Trouble calling function

I am having trouble calling simple functions and/or procedures for my database. First of all, here is the DDL to create a single table with a single entry:
CREATE TABLE Security (SSN char(9) NOT NULL, PASSWORD char(10) NOT NULL);
INSERT INTO Security ('123456789', 'mypass');
Now, I want to create a function that takes an SSN and password and returns true if they are associated, and false otherwise. I was able to successfully create the function with no errors using the following:
CREATE OR REPLACE FUNCTION CheckPassword(inSSN VARCHAR2, inPASS VARCHAR2)
RETURN BOOLEAN
IS
valid_pass BOOLEAN;
selected_pass char(10);
BEGIN
SELECT password INTO selected_pass FROM security WHERE ssn=inSSN;
RETURN selected_pass = inPASS;
END CheckPassword;
show errors
However, now I cannot call the function. I have been looking online and the references say to use "call" or "execute", and I have tried both with no luck.
When I try to use "call CheckPassword ('123456789', 'mypass');"
call CheckPassword ('123456789', 'mypass')
ERROR at line 1:
ORA-06576: not a valid function or procedure name
When I try to use "execute CheckPassword ('123456789', 'mypass');"
BEGIN CheckPassword ('123456789', 'mypass'); END;
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00221: 'CHECKPASSWORD' is not a procedure or is undefined
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
It keeps saying undefined or not a valid function or procedure, but it is. I've created it and can see that it is exists and is valid by using "select * from user_objects". I have also tried "call function CheckPassword..." and "execute function CheckPassword..." but neither work. What am I doing wrong?
Thanks
Blake

You've created a function which returns a boolean type. You can't just ignore the return value of a function.
Oh, and another thing...the table you created uses CHAR types, but your function uses VARCHAR2. This can lead to some bugs.
Are you sure you need CHAR types in your table?

Similar Messages

  • Trouble calling functions in PHP

    I am trying to get around this problem that I have been stuck
    on so as to call a function in the $videoSQL list that uses an
    array list from a database. Any help would be appreciated.

    you can use AMFPHP. here is an artile which leads to a pdf explanation:
    http://blogs.adobe.com/mikepotter/2006/02/flex_and_php_us.html
    or you can google.

  • CALL FUNCTION 'RFC_REMOTE_PIPE' throwing exception as 1

    Hi Sapients,
    I am using CALL FUNCTION 'RFC_REMOTE_PIPE' to rename a file at the UNIX level..Though this runs well... sometimes this is giving an exception as ''1'' (System Failure).. if we execute the same after 3  or 4 hours this RFC is again successfully executed...Can anyone throw some light on why this is happening and how we can avoid the same.
        CALL FUNCTION 'RFC_REMOTE_PIPE'
        DESTINATION 'SERVER_EXEC'
        EXPORTING
          COMMAND = l_command
          READ    = c_yes
        EXCEPTIONS
          system_failure        = 1
          communication_failure = 2
          OTHERS                = 3.
    where the l_command is mv old_file_name New_file_name
    and C_yes is X

    Hi,
    Maybe my answer comes too late.
    Could be helpful for others anyway.
    We got the same trouble and it was due to the RFCEXEC.SEC file.
    Installing the SDK7.20 the RFCEXEC files were missing and old RFCEXEC.SEC was not in the same format...
    Please look also to OSS notes #1592501 and #1581595
    Thanks
    //Philippe.

  • CALL FUNCTION 'RFC_REMOTE_PIPE' throwin exception ''1''

    Hi Sapients,
    I am using CALL FUNCTION 'RFC_REMOTE_PIPE' to rename a file at the UNIX level..Though this runs well... sometimes this is giving an exception as ''1'' (System Failure).. if we execute the same after 3  or 4 hours this RFC is again successfully executed...Can anyone throw some light on why this is happening and how we can avoid the same.
        CALL FUNCTION 'RFC_REMOTE_PIPE'
        DESTINATION 'SERVER_EXEC'
        EXPORTING
          COMMAND = l_command
          READ    = c_yes
        EXCEPTIONS
          system_failure        = 1
          communication_failure = 2
          OTHERS                = 3.
    where the l_command is mv old_file_name New_file_name
    and C_yes is X
    <promise removed by moderator>
    Edited by: Thomas Zloch on Mar 16, 2011 1:00 PM

    Hi,
    Maybe my answer comes too late.
    Could be helpful for others anyway.
    We got the same trouble and it was due to the RFCEXEC.SEC file.
    Installing the SDK7.20 the RFCEXEC files were missing and old RFCEXEC.SEC was not in the same format...
    Please look also to OSS notes #1592501 and #1581595
    Thanks
    //Philippe.

  • Cannot call functions with this[]

    Hello,
    I'm in trouble because I need to call functions from MCs with
    a variable
    name.
    I tried to use this[] that should do the trick, but it
    doesn't.
    Here's what I did in code to try to debug :
    - trace what's inside the this[]
    - the actual this[]
    - a cut and paste of the above trace() with the function call
    Of course, both "hardcoded" calls work..; what am I doing
    wrong ?
    Here's the code :
    trace(_parent + "." + buttonName);
    trace("_parent." + buttonName);
    this[_parent + "." + buttonName].setBtnState("test1");
    this["_parent." + buttonName].setBtnState("test2");
    _parent.mcBtn1.setBtnState("test3");
    _level0.mcInt.mcBtn1.setBtnState("test4");
    What am I supposed to feed this[] with ? Path as a string ?
    Thanks in advance.
    PJ

    What you need to feed the array operator is a string or a
    variable that can be resolved to a string. And that string needs to
    be the sole name of an instance or property of something that can
    be found in that object.
    So the reason the ones with the "_parent.mcMe" didn't work is
    because there is no object with the name "_parent.mcMe" inside of
    this. There is a _parent object and inside the parent object there
    is an mcMe, but that isn't the same thing.So you need to pick out
    the path one item at a time.
    this["_parent"]["mcMe"]["testMe"]();
    Should also work. And any of those string litterals could be
    replaced by a variable which held a string as well. Also notice
    that the function at the end can also be referenced since you are
    looking inside the mcMe object for some object with a name of
    testMe. But the parens which call the function need to be outside
    the array access because they aren't part of the name of the
    object.

  • Calling function within function as parameter

    We're planning to switch from MS-OLEDB to Oracle OLEDB and are expecting several troubles.
    One of these is that MS supports calling functions with another function within whilst Oralce does not?
    Example (works fine with MS):
    {? = call *<FUNCTION_1>* ( ?, ?, *<FUNCTION_2>* ( ?, ?, ? ) + 1, ?, 1 )}
    This raises ORA-01036: Variablenname/-nummer ungültig with Oracle's OLEDB.
    Any ideas?
    Thanks in advance!
    Edited by: user617919 on 04.11.2011 01:28

    Hi,
    Whenever you have a problem, please post a complete test script that people can run to re-create the problem and test their ideas. In this case, include complete CREATE PACKAGE and CREATE PAGKAGE BODY statements, CREATE TABLE and INSERT statements for any tables needed, some test calls to the the package, and the results you want from those test calls gibven that data.
    Always say which versin of Oracle you're using (e.g. 11.2.0.2.0).
    See the forum FAQ {message:id=9360002}
    LostNoob wrote:
    --Calculate salary minus before tax deductions
    FUNCTION sal_mns_btd (emp_no IN NUMBER)
    RETURN NUMBER
    IS
    tot_mns_btd Number;
    BEGIN
    SELECT e.sal - bef_tax_ded(bef_ded_tot)
    INTO  tot_mns_btd
    FROM  emp
    WHERE empno = emp_no;
    RETURN tot_mns_btd;
    END sal_mns_btd;
    If bef_tax_ded is a function in the same package, then what you posted is a correct way to call it.
    What is bef_ded_tot? If it's a NUMBER column in emp, then what you posted makes sense. If bef_ded_tot is a local variable inside some other function, then it doesn't make sense.. How to do what you want depends on what you want, and I can't tell you how to do it unless I understand what you want.
    Also, the table alias e isn't defined. It doesn't look like you need a table alias.

  • Call function POPUP_TO_CONFIRM after Excel close

    Good morning
    I have written code like this
    DATA: EXCEL TYPE OLE2_OBJECT.
      DATA: BOOKS TYPE OLE2_OBJECT.
      DATA: BOOK  TYPE OLE2_OBJECT.
      DATA: CELL  TYPE OLE2_OBJECT.
      DATA: FONT  TYPE OLE2_OBJECT.
      DATA: FILE  TYPE OLE2_OBJECT.
      CREATE OBJECT EXCEL 'EXCEL.APPLICATION'.
      CALL METHOD OF EXCEL 'WORKBOOKS' = FILE.
      CALL METHOD OF FILE 'OPEN'
        EXPORTING
          #1 = 'C:temp8D.xls'
          #2 = 1.
    CALL METHOD OF EXCEL 'CELLS' = CELL
        EXPORTING
          #1 = 6
          #2 = 'C'.
      SET PROPERTY OF CELL 'VALUE' = zak_pomoc.
    CALL METHOD OF EXCEL 'QUIT'.
      FREE OBJECT EXCEL.
    If user has modified the 8D file I want display this file on the screen, but first function POPUP_TO_CONFIRM  should ask him if he really wants to show file.
    I make it like this.
      call function 'POPUP_TO_CONFIRM'
        EXPORTING
          TITLEBAR              = 'Display report'
          TEXT_QUESTION         = 'Display report 8D?'
          DEFAULT_BUTTON        = '1'
          DISPLAY_CANCEL_BUTTON = 'X'
          START_COLUMN          = 25
          START_ROW             = 6
        IMPORTING
          answer                = ans.
             if ans eq '1'.
    DATA gs_excel TYPE ole2_object .
      DATA gs_wbooks TYPE ole2_object .
      DATA gs_wbook TYPE ole2_object .
      DATA gs_application TYPE ole2_object .
      CREATE OBJECT gs_excel 'EXCEL.APPLICATION' .
      SET PROPERTY OF gs_excel 'Visible' = 1 .
      GET PROPERTY OF gs_excel 'Workbooks' = gs_wbooks .
      GET PROPERTY OF gs_wbooks 'Application' = gs_application .
    *--Opening the existing document
      CALL METHOD OF gs_wbooks 'Open' = gs_wbook
        EXPORTING
          #1 = 'c:temp8D.xls'.
    endif.
    But there is my problem because two windows: first- asking about saving the file and the second- asking about showing the file, pop up in this same time.
    What condition should I write to call second window after this first one?
    Please, any suggestions?
    Thank you.

    Hello
    I'm just beginner and there is one thing I don't understand. Between lines
    CALL METHOD OF EXCEL 'QUIT'
    and
    FREE OBJECT EXCEL
    the window 'Do you want save changes' appears. And in that moment what is the value that says if the user chooses OK or QUIT?
    If I would know that value, I could call function POPUP_TO_CONFIRM in the right moment.

  • Call Function Destination in a background job

    I am having a problem using:
      CALL FUNCTION 'TABLE_ENTRIES_GET_VIA_RFC'
             DESTINATION p_dest
    in a background job.
    I am working on a program that would compare the same table in 2 different systems and write the differences.  It works when I run it in the foreground.  However, I want to run this in a nightly background job.  However, it is failing and I beleive that it is the result of the program needing a user to interactively logon to the remote system.
    How can I bypass the logon screen or enter information into the logon screen using a background job?
    Thanks.
    Jon

    Hi Jonathan,
    Would you like to reward some points to the poster to thank them as a part of SDN Contributor Recognition Program?
    You can click on the yellow star on the right of each post header to reward points.
    For more information:
    https://www.sdn.sap.com/sdn/index.sdn?page=crp_help.htm
    John.

  • Uncatchable exception: BSP calling Function Module

    Hi all,
    currently i'm facing a very weird problem. My application class calls function module
    HR_INFOTYPE_OPERATION. Normally, in case of an error, the function module gives you back a return parameter. But if i call it from my BSP, the processing doesn't leave the function module. It directly throws an exception ERROR_MESSAGE_STATE instead of writing the message into parameter return.
    If i call the function module with the same parameters from a report, it works fine and the error message is written to return parameter without throwing an exception.
    What am i doing wrong? I don't want that exception and need to go on with filled parameter result.
    Regards
    Mark-André

    Hi MA,
    try using ERROR_MESSAGE in the exceptions list, like this.
    CALL FUNCTION 'func_name'
         EXPORTING
              string            = text
              pos               = position
         IMPORTING
              string1           = text1
              string2           = text2
         EXCEPTIONS
              string1_too_small = 1
              string2_too_small = 2
              ERROR_MESSAGE     = 3
              OTHERS            = 4.
    Cheers
    Graham Robbo

  • What is the use of CALL FUNCTION MODULE - AT BACKGROUND TASK?

    Hi experts,
    I found Call functional module in background task will make the FM run at the next commit work as some people said. So I have some questions:
    1 if we use COMMIT WORK commend, the pending FM will be called? If there are several FMs called at background task, what is the sequence of them? How many conditions will trigger the running of these FMs?
    2 Where can I find the log of this pending FMs? In SAP library, it says there are 2 tables. But I checked these tables and can only find the FM name and user of it. And I can not understand content of these tables. It seems one is for the main information of FM, and the other is for the data of the FM, maybe the parameters.
    3 If I call a FM in this way, Can I canncel it before the next commit work in some way?
    Finally, thanks for reading and help.

    HI,
    When the COMMIT WORK statement is executed, the function modules registered for the current SAP-LUW are started in the order in which they were registered. ROLLBACK WORK deletes all previous registrations for the current SAP-LUW.
    If the specified destination is not available when COMMIT WORK is executed, an executable program called RSARFCSE is started in background processing. By default, this tries to start the function modules registered for a SAP-LUW in their destination every 15 minutes and up to 30 times. These parameters can be changed in the transaction SM59. If the destination does not become available within the defined time, it is recorded in the database table ARFCSDATA as the entry "CPICERR". The entry in the database table ARFCSSTATE is deleted after a standard period of eight days

  • How to fill data when call function of sap standard script form?

    Hi every experts,
    <Priority Normalized>
    In our system, when we log in 'FR', we can print purchase order in language Franch,in t_code:ME22N.  And when logging in 'EN', we can print it in language English, in ME22N. The English form is just only translated from Franch, with all same structure and frame.  The form is done by script form.
    And when logging in 'ZH', we create a new program, calling function smartform, instead of translating from EN language. Because of different structure and frame, I don't know the way to write script, so  I print puchase order by smartform, when logging in 'ZH'.
    But I have a new issue. Our MM module consultant needs me to print Chinese form if one condition, print English form in other condition.
    So I have no idea to solve it. Because in my program, I get data to fill smartform and call function of smartform. And I don't know how to get data to fill script form. I only know the function name, 'OPEN_FORM' 'WRITE_FORM' 'CLOSE_FORM'.....
    If I only call the several functions, I will get only frame without no data. So who can tell me how to do????
    <Urgency downgraded>
    Edited by: Suhas Saha on Jul 26, 2011 3:34 PM
    Edited by: Vinod Kumar on Jul 26, 2011 4:09 PM

    Hi,
    Normally if we look in NACE transaction, you can see that upto five different FORMS can be assigned to a single output type . i.e. for each form there will be a seperate routine through which it gets called. But it all start from the first form only.
    so you need to write your code in the ENTRY of the first form and if it does not satisfy do not go for processing of it but just exit of that form ENTRY. so that it will take you to next form.
    hope this helps.
    Thanks,
    Venkatesh

  • Function Module CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH'

    Hello All,
    While using CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH' to download to Unix file in GLD (Version 4.5b) the F.M is working fine, but in KLD(Version ECC 6.0)  CALL FUNCTION 'SO_SPLIT_FILE_AND_PATH' is not working & the error message is displayed saying incomplete filename.
    Could you let me know any alternate Function Module/ Method in this regard.
    Thanks

    Hi,
    In ECC6 also Its Working fine only.
    1. Go to SE37 -> Enter FM Name  -> Test(F8).
    2.  Give any file path and test it.
    Thanks,
    Reward If Helpful.

  • Call function 'gui_download'

    Hallo Friends,
    I am using the above fuction in my program. I want the header of my internal table to be writen als header in the text file. So, I created another Itab (Itab-col_1) and appended all the headers in this, which I later use as below.
    Problem:
    1.
    I am not satisfied with the downloaded output in file.txt  I want the header to be excactly over the column content. Please see my output:
    MANDT     LIFNR     LAND1     NAME1     NAME2     NAME3
    010§§§§§§0000010000§§§§§§§§§§§§§§§§§§DE§§§§§§Test
    010§§§§§§0000100000§§§§§§§§§§§§§§§§§§US§§§§§§TEST
    § § means Space
    It is Obvious LAND1 should be over DE / US, NAME1 should be over Test / TEST etc etc     
    2.
    I would like filed seperator to be ( ; ) not space. The flag 'X' gives space.
    CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          filename                  = str
          filetype                    = 'ASC'
          write_field_separator = 'X'
          dat_mode                = 'X'
        TABLES
          data_tab                   = itab_kreditor
          fieldnames                = itab_datei_col_header
        EXCEPTIONS
          file_write_error           = 1
          file_not_found            = 19
          OTHERS                   = 22.
    So, how can I solve these two problems.
    Blacky.

    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
      BIN_FILESIZE                    = BIN_FILESIZE
        filename                        = filename
      FILETYPE                        = 'ASC'
      APPEND                          = ' '
    <b> WRITE_FIELD_SEPARATOR           = ';'</b>
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
    IMPORTING
      FILELENGTH                      = FILELENGTH
      TABLES
        data_tab                        = data_tab
      FIELDNAMES                      = FIELDNAMES
    EXCEPTIONS
      FILE_WRITE_ERROR                = 1
      NO_BATCH                        = 2
      GUI_REFUSE_FILETRANSFER         = 3
      INVALID_TYPE                    = 4
      NO_AUTHORITY                    = 5
      UNKNOWN_ERROR                   = 6
      HEADER_NOT_ALLOWED              = 7
      SEPARATOR_NOT_ALLOWED           = 8
      FILESIZE_NOT_ALLOWED            = 9
      HEADER_TOO_LONG                 = 10
      DP_ERROR_CREATE                 = 11
      DP_ERROR_SEND                   = 12
      DP_ERROR_WRITE                  = 13
      UNKNOWN_DP_ERROR                = 14
      ACCESS_DENIED                   = 15
      DP_OUT_OF_MEMORY                = 16
      DISK_FULL                       = 17
      DP_TIMEOUT                      = 18
      FILE_NOT_FOUND                  = 19
      DATAPROVIDER_EXCEPTION          = 20
      CONTROL_FLUSH_ERROR             = 21
      OTHERS                          = 22
    IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    Regards
    Vasu

  • Fm CALL FUNCTION 'GUI_DOWNLOAD'

    hi experts:
                    How to add a field name line in fm 'GUI_DOWNLOAD'?
    allen

    hI,
    DATA: V_PATH TYPE STRING.
    V_PATH = P_FILE.
    **-- Function GUI_DOWNLOAD is used to save the data back in the
    **-- flat file from the internal table
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
          FILENAME                = V_PATH
          FILETYPE                = 'ASC'
          APPEND                  = ' '
          WRITE_FIELD_SEPARATOR   = 'X'
        TABLES
          DATA_TAB                = I_PIPE
        EXCEPTIONS
          FILE_WRITE_ERROR        = 1
          NO_BATCH                = 2
          GUI_REFUSE_FILETRANSFER = 3
          INVALID_TYPE            = 4
          NO_AUTHORITY            = 5
          UNKNOWN_ERROR           = 6
          HEADER_NOT_ALLOWED      = 7
          SEPARATOR_NOT_ALLOWED   = 8
          FILESIZE_NOT_ALLOWED    = 9
          HEADER_TOO_LONG         = 10
          DP_ERROR_CREATE         = 11
          DP_ERROR_SEND           = 12
          DP_ERROR_WRITE          = 13
          UNKNOWN_DP_ERROR        = 14
          ACCESS_DENIED           = 15
          DP_OUT_OF_MEMORY        = 16
          DISK_FULL               = 17
          DP_TIMEOUT              = 18
          FILE_NOT_FOUND          = 19
          DATAPROVIDER_EXCEPTION  = 20
          CONTROL_FLUSH_ERROR     = 21
          OTHERS                  = 22.
      IF SY-SUBRC <> 0.
        MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ****DO REWARD IF USEFULL
    VIJAY

  • Call function RFC in a loop and kill old session

    Hi,
    we have a problem with a program.
    here's a part of the code:
    DO.
        CALL FUNCTION 'YC_REFRESH_GPT_START_CM25' STARTING NEW TASK 'TEST'
          EXPORTING
            i_profile       = p_prfl
            i_werks         = p_werks
            i_arbpl_low     = s_arbpl-low
            i_arbpl_high    = s_arbpl-high
          TABLES                                              
            t_arbpl =  it_arbpl.                                
        PERFORM wait_for_refresh.
        PERFORM terminate_session.
      ENDDO.
    So the program does a call function, waits a while, then terminates the session and recalls the function.
    Apparently, like this the data should be updated.
    But in the terminate session, the session is terminated using:
    CALL 'ThUsrInfo' ID 'OPCODE'  FIELD opcode_delete_mode
                       ID 'MODE'    FIELD l_mode.
    And it works the first time, but the second time there is a dump.
    So, is there another way to achieve what this program is trying to do?
    Or is there another way to kill the session?
    Thanks!!

    Hi,
    the DLL will stay in memory as long as there is a program running which has not closed (unloaded) the DLL.
    Doing repetitive calls to the DLL is irrelevant in this context. LV opens the DLL as soon as needed and will only unload it when there is no VI in memory which has a CLN to that DLL...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

Maybe you are looking for

  • Error while adding attribute

    Hi All, I have a BSO cube with 9 dimensions and want to add attribute dimension to generate report based on the managers responsible for different locations. When I created a dimension a new dimesion and changed its dimesion type to "Attribute" dimen

  • White screen then restart at beginning of install.

    Hi, I'm struggling with installing on my laptop (Acer Aspire 5532). After it completes loading "archiso.img" I get a white screen for about 3 seconds then a reboot, back to the original menu. I assumed, given that it was a white screen, that it was a

  • Check which column in database table is updated without hard code

    Hi , I have a requirement to detect if there is a particular column in the database table is updated , and this column name is found in mapping table ( business logic ) , it will do an insertion to another special table. My idea is to introduce a tri

  • AppWorld App - disappeared

    Good day - as many others my appworld app has disappeared.  I read all the notes and forums and tried to reinstall the app per the directions. The appworld app is in my Options, however the icon does not show on any of my home screens, nor can I get

  • HT6058 i hate ios7 please tell me how i can go back to ios6

    i hate ios7 please tell me how i can go back to ios6