Change a function to take the parms variable

I have the following function (see below). As you can see that it takes 2 parameters. There are moments where I just want to take 1 setting the schema name. How this code and call him.

CREATE OR REPLACE FUNCTION DBA_MAINT.f_get_size

(p_table_owner in VARCHAR2

nom_table_p in VARCHAR2

)

RETURN NUMBER

IS

v_size NUMBER;

BEGIN

SELECT SUM (bytes) / 1024/1024 INTO v_size

FROM dba_segments

WHERE (owner = p_table_owner

AND nom_segment = nom_table_p

AND segment_type = 'TABLE')

OR (owner, nom_segment) IN)

SELECT master

nom_segment

OF dba_lobs

Owner WHERE = p_table_owner

AND table_name = nom_table_p

)

OR (owner, nom_segment) IN)

SELECT master

index_name

OF dba_lobs

Owner WHERE = p_table_owner

AND table_name = nom_table_p

)

OR (owner, nom_segment) IN)

SELECT master

index_name

OF dba_indexes

WHERE table_owner = p_table_owner

AND table_name = nom_table_p

)

;

RETURN v_size;

END f_get_size;

/


I would write more basic query like that, which makes the table easier to handle optional name parameter:

FUNCTION to CREATE or REPLACE DBA_MAINT.f_get_size (p_table_owner IN VARCHAR2,

nom_table_p IN VARCHAR2)

RETURN NUMBER IS

v_size NUMBER;

BEGIN

Select sum (bytes) / 1024/1024 in v_size

from (select s.bytes, s.owner,

COALESCE (i.table_name, ls.table_name, lis.table_name,

rel_table of s.segment_name)

of s dba_segments

Join dba_indexes left I

On s.owner = i.owner and

s.segment_name = i.index_name and

s.segment_type = "INDEX".

ls dba_lobs left join

On s.owner = ls.owner and

s.segment_name = ls.segment_name and

s.segment_type = "LOBSEGMENT".

Lily dba_lobs left join

On s.owner = lis.owner and

s.segment_name = lis.index_name and

s.segment_type = "LOBINDEX")

where owner = p_table_owner and

(rel_table = nom_table_p or)

nom_table_p is null);

RETURN v_size;

END f_get_size;

John

Tags: Database

Similar Questions

  • Hi whant to update the changed value to dishes of the same variable used in the entry. How to do thanks in advance

    Hi, I want to update the value out put of the same variable used in the entry. How to do thanks in advance

    ya I got it. using the property node (and if you select value) we can do. Thans for answer

  • Function call for the ActionScript variable name

    I am tempted to call a function dynamically by using a string variable.  I know that to do this normally, I would use code like this:

    var functionName:String = '' + currentItem.id;

    var myData:Array = this [functionName] (parameter1, parameter 2, parameter3);

    However, my function is actually in another directory of flex/package called UploadApps.customUploadFunctions.  I tried this sort of thing:

    var functionName:String = '' + currentItem.id;

    var myData:Array = UploadApps.customUploadFunctions.this [functionName] (parameter1, parameter 2, parameter3);

    but it does not work.  Any ideas on how to call a function with a variable name in another package?

    John

    My suggestion is to stop using the methods at the level of the package. Just do static methods in a utility class as we do in the framework in the mx.utils package. Then you can easily call them UtilityClassName [functionName] (param1, param2, param3). Given that the programming in AS3 is 99.9% on classes, I don't know why AS3 allows even the methods package level.

    Gordon Smith

    Adobe Flex SDK team

  • change the same variable in different loops

    Hi all

    I use an event producer/consumer-controlled architecture where the two loops run processes acting on a common variable.

    To be more precise, I intend to change a flag photo in the loops of consumer and producer. That's why I need to share this variable between the two loops.

    I thought that the best way to do this is to use the indicator of functional photo as part of a Global Variable:
    1 / FGV initialization, which is a cluster that contains the indicator image

    2 / in two loops, the image indicator last value is extracted from the FGV using an action of 'read '.

    3 / the value of the indicator of picture is wired through different processes that would change partially or totally

    4 / Finally, in two loops the photo update flag values are wired as input to the FGV.

    Above is the ideal case, I expected to work. However, this does not work, and is what I've actually implemented:

    (a) in the loop of the producer, the indicator of picture is updated via a shift register, and at the same time, the new value is stored in the FGV

    (b) in the loop of consumption, the indicator of the image is retrieved from the FGV, and its present value is stored in the FGV (as in the ideal case)

    Then I don't why it does not work. I use other FGVs in my VI and which are modified by two loops, but THEY work...

    My VI is really great, so I can't take a picture of him. Can I give you a diet simplified what is my current architecture, whose shot at him. I hope it helps.

    Thank you.

    Florian

    Hi Florian.

    Two FGV reads on the left side of your curls below will be a problem unless you use the data flow to control. The FGV bed (as shown) will occur at the start and then after the structure of each loop ends. When you really want to 'read' when Gets an element from the queue or in the loop of photo - when there are new values.

    The loop of consumption is fairly easy to treat. Just run the Dequeue 'error' error 'in' on your FGV. This will ensure that playback of the FGV happens when you get a new item.

    The photo event loop is a bit tricky. You could send a user of the consumption loop event (after your FGV write) to the photo event loop. In this case the user loop photo, put a reading of the FGV. This ensures that you will get the changes made in the loop of the consumer. The only downside to this approach is that the photo loop always runs once when a change is made in the loop of the consumer. You can use a Boolean value to prevent the image to be written (ensures also the image is always written after the end of the event Structure).

    Here is an example:

    Steve

  • Adapter DLL: Name of the function change & params without unloading of the DLL

    Hello

    I use teststand adapters API to dynamically build a DLL call step. Each dll function is called through this subsequence "DLL Manager."

    Tried 2 methods (here is a summary of the code):

    1 ActiveX as follows:

    CommonCModule.ModulePath = myDllpath

    CommonCModule.FunctionName = myFunc (Note: this call unload the DLL previously loaded)

    Module-> LoadPrototype

    (to set the params)

    2 steps statement:

    RunState.Sequence.Main ["Call DLL function']. TS. SData.Call.LibPath = myDllpath

    RunState.Sequence.Main ["Call DLL function']. TS. SData.Call.Func = myFunc (Note: this is a step, but the info seems not be updated-online the new feature is called not properly)

    Module-> LoadPrototype

    (to set the params)

    The two methods is exactly the same behavior, but good for the 1st function I call a work or if I dump the dll after the execute step.

    However, is there a way to use these steps (or other) at stage configuration, but without unloading the DLL between each call. In my test sequence, I must OpenConnection with the object to be measured before starting my orders, as well as the dll should not be discharged to keep the connection open...

    for example

    (1) OpenConnection()-online this function takes the handle of communication with the device

    (2) myCommand1()

    (3) myCommand2()

    (4) CloseConnection()

    Thank you for the help

    C.

    If I understand your question, there are several ways to solve the problem. The easiest is to place a call to the dll before your loop that you never change programmatically. This step will then keep the loaded dll (if any stage that uses a dll is loaded, then the dll remains loaded. A dll is unloaded when all the steps that use it are unloaded.). Another option is to have just internally your call to the dll LoadLibrary on itself so that it is never unloaded. You then leave the process to unload the dll well. Another option is to add the code directly to the sequence that explicitly, charge and discharge your dll with the Win32 API LoadLibrary and FreeLibrary.

    That said, what you describe, if I understand correctly, looks like a very unusual use of TestStand. Looks like you use TestStand as a dll calling rather than as a sequencer and write your own sequencer above it instead. Have you thought to generate an entire sequence to run in teststand, rather than a step at a time? Basically, convert your test script in a TestStand sequence.

    Hope this helps,

    -Doug

  • The local variable cannot be declared outside a function.

    I was getting an ORA-936 on an application that I support (Oracle 11 g, CF 11, Windows Server 2012).  The database went down yesterday, for some reason unknown to me, and when he came, I'm now getting this error message.  The only pointer to the .cfm file is the sponsor.  I don't see how to fix it.  Can what information I include that will help you help me?  It seems that the more I learn, something new always comes along.   Here is the error page that is displayed.  I have not changed all the statements, I know.   Thank you.

     The local variable application cannot be declared outside of a function.
    All variables defined with the var keyword must be declared inside a function.
    
    Resources:
    
        Check the ColdFusion documentation to verify that you are using the correct syntax.
        Search the Knowledge Base to find a solution to your problem.
    
    Browser       Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0
    Remote Address       108.44.188.221
    Referrer       https://TestServer/secure/Requirement/requirementsum.cfm?frompage=orig&CFID=58847&CFTOKEN=1c45276fd65debf-7F25B5E6-AA99-1268-0B24AB3E54D73594
    Date/Time       27-May-16 01:25 PM
    Stack Trace
    
    
    coldfusion.compiler.ASTvariableDefinition$InvalidVarDefinition: The local variable application cannot be declared outside of a function.
        at coldfusion.compiler.ASTvariableDefinition.register(ASTvariableDefinition.java:98)
        at coldfusion.compiler.SemanticAnalyzer.transform(SemanticAnalyzer.java:340)
        at coldfusion.compiler.Treewalker.postorder(Treewalker.java:100)
        at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27)
        at coldfusion.compiler.Treewalker.postorder(Treewalker.java:27)
        at coldfusion.compiler.NeoTranslator.parseAndTransform(NeoTranslator.java:443)
        at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:370)
        at coldfusion.compiler.NeoTranslator.translateJava(NeoTranslator.java:147)
        at coldfusion.runtime.TemplateClassLoader$TemplateCache$1.fetch(TemplateClassLoader.java:436)
        at coldfusion.util.LruCache.get(LruCache.java:180)
        at coldfusion.runtime.TemplateClassLoader$TemplateCache.fetchSerial(TemplateClassLoader.java:362)
        at coldfusion.util.AbstractCache.fetch(AbstractCache.java:58)
        at coldfusion.util.SoftCache.get_statsOff(SoftCache.java:133)
        at coldfusion.util.SoftCache.get(SoftCache.java:81)
        at coldfusion.runtime.TemplateClassLoader.findClass(TemplateClassLoader.java:609)
        at coldfusion.filter.PathFilter.invoke(PathFilter.java:101)
        at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:94)
        at coldfusion.filter.BrowserDebugFilter.invoke(BrowserDebugFilter.java:79)
        at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)
        at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
        at coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:58)
        at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
        at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
        at coldfusion.filter.CachingFilter.invoke(CachingFilter.java:62)
        at coldfusion.CfmServlet.service(CfmServlet.java:219)
        at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
        at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:437)
        at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:197)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:722)
    

    I had added end brand to all the and it has cleared up.  Weird.

    Which brings me to another question.  When you do make the end like this tag or use the tag?

  • change the Boolean variable on the stage

    Hello! This is my first post here! so I've been playing for a while with the Adobe Edge animate for a while and it's pretty cool and I am trying to create a super basic layout with a video loop, and when the user press the button, the video plays until ongoing and then starts a new. the button it simply changes the variable state of false to true, pretty simple, but for some reason, it does not. I'm an artist, so I don't know much about code in addition to if/else haha

    Here is the code on the stage (it is put on the CompositionReady):

    var loop1 = sym.$("loop")[0];
    
    var nextLoop = new Boolean();
    console.log(nextLoop); //false
    
    loop1.onended = function(e){
    if (nextLoop == true){
         // Show an element
         sym.$("loop2").show();
         // Play a video track
         sym.$("loop2")[0].play();
         }
         else{
         loop1.play()
         }
    };
    
    

    and here is the code for the button:

    sym.getSymbol("next_btn").play(); //fade out
    //change nextLoop state
    sym.getComposition().getStage().nextLoop = true;
    
    

    I'm pretty sure it's a syntax error, but I don't really know how to fix it

    any ideas?

    Thanks in advance!

    Hi rbencz

    You will need to create a global variable so that it works properly, I commented on 2 lines I added:

    sym.setVariable ("nextLoop", false); Create a new global variable called 'nextLoop' and set the value to false

    loop1 var = sym.$("loop") [0];

    loop1.onended = {Function

    nextLoop = sym.getComposition () .getStage () .getVariable ("nextLoop"); Get the Global Variable and assign a local variable

    If (nextLoop == true) {}

    Display an item

    SYM.$("loop2"). Show();

    A video track

    SYM.$("loop2") [0]. Play();

    } else {}

    loop1. Play()

    }

    };

    And then the button, place the following code:

    sym.getComposition () .getStage () .setVariable ("nextLoop", true); Change the value of the variable global "nextLoop" true

  • Change of functions of triggered on variable

    Hello!

    It is probably something easy enough, but impossible to find exactly what I wanted. It must be linked to the eventListener thing, but do not know how to do it:

    I would like to multiple video clips to react (each in his own way) when a variable changes; I have a website which must be editable when the var _root.vAdmin = 'yes' and not when the latter is equal to "no". so I need multiple functions located anywhere to be triggered when the _root.vAdmin variable changes. any idea?
    Thanks in advance!

    This.Watch ('vAdmin', MyHandler)

    function myHandler()
    {
    call all the relevant functions necessary on the evolution of the
    }

  • dynamic SQL for OPEN will not take the SQL string in the form of a string variable

    Hello

    I use "OPEN-for", not "EXECUTE IMMEDIATE" because I want to do multi lines request. However, 'OPEN-for' won't take a variable "strSQL' in the clause, it only took fixed ropes?

    create or replace function fnEnumSystemUser
    (
    LogonFilter nvarchar2,
    ...
    AdditionalWhereClause nvarchar2,
    OrderByClause nvarchar2
    )
    RETURN xxxxx.cursorType
    AS
    strSQL nvarchar2 (2000);

    FormatAdditionalWhereClause nvarchar2 (2000);
    FormatOrderByClause nvarchar2 (2000);

    SystemUserCursor xxxxx.cursorType;
    BEGIN

    If AdditionalWhereClause IS NULL THEN
    FormatAdditionalWhereClause: = ' ';
    ON THE OTHER
    FormatAdditionalWhereClause: = TRIM (AdditionalWhereClause);
    END IF;

    If OrderByClause IS NULL THEN
    FormatOrderByClause: = ' ';
    ON THE OTHER
    FormatOrderByClause: = TRIM (OrderByClause);
    END IF;

    strSQL: = 'select Id, FirstName, MiddleName, LastName, PrimaryEmail, PersonType, CreateDate, CreatedBy, LastUpdate, LastUpdateBy, connection, PasswdHash, IsSuspended, had left join SystemUser person on SystemUser.PersonId = Person.Id';
    -It won't work, just says "WARNING: compiled, but with compilation errors" when I tried to create the function
    Open SystemUserCursor for strSQL;

    -This is to call "ORA-01006: bind variable does not exist.
    Open SystemUserCursor
    ' select Id, FirstName, MiddleName, LastName, PrimaryEmail, PersonType, CreateDate, CreatedBy, LastUpdate, LastUpdateBy, connection, PasswdHash, IsSuspended, had left join SystemUser person on SystemUser.PersonId = Person.Id WHERE SystemUser.Logon like: x: y ' using LogonFilter, OrderByClause;

    -This failed also (on call, "ORA-00900: invalid SQL statement")
    Open SystemUserCursor
    ' select Id, FirstName, MiddleName, LastName, PrimaryEmail, PersonType, CreateDate, CreatedBy, LastUpdate, LastUpdateBy, connection, PasswdHash, IsSuspended, had left join SystemUser person on SystemUser.PersonId = Person.Id WHERE SystemUser.Logon like: x' | OrderByClause using LogonFilter;

    RETURN SystemUserCursor;
    END;

    That's how I invoked:
    declare
    Int NumItemsSelected;
    lstResult xxxxx.cursorType;

    TYPE SystemUserRecordType IS RECORD
    (
    ID numeric (19.0),.
    FirstName nvarchar2 (50).
    MiddleName nvarchar2 (50).
    LastName nvarchar2 (50).
    PrimaryEmail nvarchar2 (190),
    PersonType int,
    CreateDate timestamp,
    CreatedBy numeric (19.0),.
    LastUpdate timestamp,
    LastUpdateBy numeric (19.0),.

    Logon nvarchar2 (75).
    PasswdHash int,
    IsSuspended tank,
    Display timestamp
    );
    SystemUserRecordType oUser;
    Start

    lstResult: = fnEnumSystemUser (...) '%',... Person.PrimaryEmail like '% a %', "order by ASC Logon", 0, 10, NumItemsSelected);
    LOOP
    extract lstResult in oUser;
    When the output lstResult % notfound;
    dbms_output.put_line ('Id: ' | oUser.Id);
    END LOOP;
    end;

    I need the ability to add to the SQL string because ultimately say I need to join:
    1. ORDER BY section
    2 call a FUNCTION in WHERE Clause
    3 pagination and ROW_NUMBER() clause

    What can I do? Thank you!

    1. why you use NVARCHAR2 to the SQL string. Use VARCHAR2 or LONG.

    2. use

     tags to preserve formatting of your code.
    
    3. In the bind variable does not exist example it looks like you have one bind, :y, but are trying to bind two variables logonfilter and orderbyclause.
    
    4. In the third example, try logging the sql string in a table or dbms_output and running it in sql - you should get the same error and it might then be easier to diagnose.
    
    Cheers,
    Dominic                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
    
  • Hit the tab key changes the withdrawal. How can I do tab take the cursor to the next tab stop?

    Currently in the latest version of Pages, the tab key changes the line indent. How can I take the cursor to the next tab stop? The document was created in Word format. I work with Yosemite 10.10.5 on a MacBook Pro with 8G of RAM and hard disk of 1 t.

    The removal of default tab in v5.6.2 Pages is 0.5. You have formally the additional tab stops in Text Format: Panel layout, or with your ruler displayed or clicked on it to set the tab indents?

    Pages is not a clone of the word and the Act to translate automatically the Word document to the internal .pages format when opened by Pages - may or may not honor prior model and Word document settings.

  • How can I make a feature to create a table of values of variable size, which I can take the median?

    I am new to LabVIEW all this, I know it's a simple enough question, but:

    I create a montage where we have two pressure - low pressure and high pressure sensor transducers. The problem is there is noise in the signal I want to reduce - I don't have the full version of LabVIEW (base only) so I can't use the convenient median PtbyPt.vi to reduce the noise, but I wrote something that I thought would work (attached). The question is twofold:

    (1) I don't get pressure readings when I know that the system is empty.

    (2) the change in pressure is too slow for the application in which it is used - for example atmospheric pressure reading empty takes minutes when it should take seconds. I think I could solve this problem with a business structure that analyzes the table to see if the pressure changes vary more than a certain amount. If so, do not take the median.

    Any help would be greatly appreciated!

    Just make your own way to pt by pt. I did one here

  • Change the target of the library Variable shared by program

    I have a project in real time with the code that runs on a host PC and a cRIO who communicate using a library of shared on the cRIO variables. I am hosting the variables on the cRIO because who has worked much better than the accommodation on the host PC. For normal operation, this structure works perfectly.

    However, I'm now trying to implement a system that will allow the user to choose if they want to actually run the code on the cRIO or run a simulated system. The simulated system would occur on the host PC, so it is logical for this application for variables to be located on the host PC.

    To account for these two cases, I would change the target of the variable shared library depending on whether the real-time system is running or if the simuation is executed. I can do easily manually simply by dragging the library in the Project Explorer, but prefer to automate this process.

    In short, I try to develop a code that will change the target of a shared library of variable.

    I tried to do that by opening a reference to the project file, using the properties to get the library reference and change the target. However, the target property is read-only. Is there another way to do this or I'm stuck having to do it manually?

    It turns out that I had a version of the shared library Variable on the cRIO, so even when I welcomed the variables shared on the host PC, he always wrote in the cRIO. In fixing this issue, I have been able to accommodate the library on the host PC and get all what to run much more simply.

  • change the settings of the view variable value

    Hello

    I want to know if it is possible to change the settings for the debugger, including the display of the "view variable values" settings in labwindows cvi 9.0.

    My problem is that in my project, it is essential to be able to debug and I came across some difficulities with the array of structs containing pointers to structures. So, I did a demonstration to show project:

    typedef struct {}
    short sVar1;
    short sVar2;
    char cVar1 [512];
    } MyStruct2;

    typedef struct {}
    MyStruct2 ReadMyS2;
    MyStruct2 WriteMyS2;
    MyStruct2 * pReadMyS2;
    MyStruct2 * pWriteMyS2;
    } MyStruct1;

    int main()

    {

    MyStruct1 MyS1_Phis [3] = {0};
    int i = 0;

    init
     
    for (i = 0; i<>
    {

    MyS1_Phis [i] .pReadMyS2 = & MyS1_Phis [i]. ReadMyS2;

    MyS1_Phis [i] .pWriteMyS2 = & MyS1_Phis [i]. WriteMyS2;
    }

    }

    Unfortunately, the debugger handles .pReadMyS2 pointer [0] MyS1_Phis as if that it points to an array of 10 elements of type MyStruct2.

    Anyone know the reason for this?

    Thanks in advance,

    Laszlo Nagy

    Hi Laszlo,

    Yes, it is a known problem in CVI. This can happen because of the way the CVI user protection is implemented. It is certainly not desirable, but we probably won't be able to change it at least still a year or two.

    A solution you have is to disable the protection of the user and then rebuild your program (Options > Compiler Options > level debugging: no execution check)

    Luis

  • using the function - how to use the values of the input variables on the table select statement names

    Hello community, I have a problem when creating a function. The purpose of this function is to check the table of weather gave yesterday or not. We must check this on different tables on different sachems. We are creating a function with input variables.

    CREATE OR REPLACE FUNCTION IN_SCHEMA.IS_YDAYDATA_TO_TABLE

    (

    in_schema IN VARCHAR2,

    in_tablename IN VARCHAR2,

    in_datefield IN VARCHAR2,

    )

    RETURNS INTEGER

    AS

    -Declaring variables

    v_is_true INTEGER.

    BEGIN

    SELECT

    CASE

    WHEN MAX (in_datefield) = TRUNC(SYSDATE-1)

    THEN 1

    ON THE OTHER

    0

    END

    IN

    v_is_true

    Of

    in_schema.in_tablename

    ;

    RETURN v_is_true;

    END;

    /

    When creating, I got error: [error] ORA-00942 (44:19): PL/SQL: ORA-00942: table or view does not exist

    How to use the values of the input variables on the table select statement names?

    Hello

    Here's a way you can use dynamic SQL statements for this task:

    CREATE OR REPLACE FUNCTION IS_YDAYDATA_TO_TABLE

    (

    in_schema IN VARCHAR2,

    in_tablename IN VARCHAR2,

    in_datefield IN VARCHAR2,

    in_first_date DATE DEFAULT SYSDATE - 1,.

    in_last_date DATE by DEFAULT NULL

    )

    RETURNS INTEGER

    AS

    -IS_YDAYDATA_TO_TABLE returns 1 if in_schema.in_tablename.in_datefield

    -contains all the dates in the in_first_date of the range through included in_last_date

    - and it returns 0 if there is no such lines.

    -If in_last_date is omitted, the search only the data on in_first_date.

    -If in_first_date is omitted, it defaults to yesterday.

    -Time parts of the in_first_date and in_last_date are ignored.

    -Declaring variables

    sql_txt VARCHAR2 (1000);

    v_is_true INTEGER.

    BEGIN

    sql_txt: = 'SELECT COUNT (*).

    || 'FROM ' | in_schema | '.' || in_tablename

    || 'WHERE ' | in_datefield | ' > =: d1'

    || «AND» | in_datefield | '< >

    || 'AND ROWNUM = 1';

    dbms_output.put_line (sql_txt |) '= sql_txt in IS_YDAYDATA_TO_TABLE");  -For debugging

    Sql_txt EXECUTE IMMEDIATE

    IN v_is_true

    With the HELP of TRUNC (in_first_date) - d1

    TRUNC (NVL (in_last_date

    in_first_date

    )

    ) + 1                -- d2

    ;

    RETURN v_is_true;

    END is_ydaydata_to_table;

    /

    DISPLAY ERRORS

    If you must use dynamic SQL statements, put all the SQL statement in a single string variable, such as sql_txt in the example above.  In this way, you can easily see exactly what will be executed.  Comment out the call to dbms_output under test is completed.

    Try to write functions that will address not only the question that you have now, but similar questions that you may have in the future.  For example, now that interest you only to the verification of the data of yesterday, but later, you might want to check another day or range of days.  The above function combines the convenience of a function simple (looks like yesterday data if you don't tell him otherwise) with the power of a more complex function (you can use the same function to check any day or range of days).

  • By the way Self as a parameter or by passing an object Variable to a member function, both in the approach IN OUT NOCOPY Mode which is better?

    Hi all
    Asking for help which approach is better of the two in terms of performance and why (if there is no difference) or are they an and they same and only different in terms of syntax only.

    (A) to call a function with itself in passing as IN OUT nocopy
    (B) passing the calling object, same as IN OUT NOCOPY.

    @
    (In my approach, I need to pass an object with almost 30 attributes and I must assign values to few attributes of the object in a few member functions that will impact object)

    I have an object created in the
    CREATE or REPLACE TYPE my_obj AS OBJECT
    (
    NAME VARCHAR2 (100),
    FUNCTION CONSTRUCTOR My_obj RETURNS SELF AS RESULTS,
    FUNCTION MEMBER put_name (SELF IN OUT NOCOPY my_obj) RETURN PLS_INTEGER,
    RETURN of the MEMBER FUNCTION insert_name (v_my_obj IN OUT NOCOPY my_obj)
    PLS_INTEGER,
    MEMBER get_name PROCEDURE
    );
    /
    CREATE OR REPLACE TYPE BODY MY_OBJ

    FUNCTION CONSTRUCTOR RETURN self AS RESULT My_obj IS
    BEGIN
    NULL;
    RETURN;
    END;

    FUNCTION MEMBER (SELF IN OUT NOCOPY my_obj) put_name IS BACK PLS_INTEGER
    BEGIN
    Self.Name: = "my_name_in_self";
    RETURN 1;
    END put_name;

    MEMBER FUNCTION insert_name (v_my_obj IN OUT NOCOPY my_obj)
    IS BACK PLS_INTEGER
    BEGIN
    v_my_obj. Name: = "my_name_in_Alias";
    RETURN 1;
    END insert_name;

    MEMBER get_name PROCEDURE IS
    BEGIN
    dbms_output.put_line (self. (Name)
    END;
    END;
    /

    (a) put_name heel 1 call:

    declare
    v my_obj: = my_obj();
    number of ret_val;
    Start
    ret_val: = v.put_name;
    v.get_Name;
    end;

    o/p: my_name_in_self

    (a) insert_name citing heel 2:

    declare
    v my_obj: = my_obj();
    number of ret_val;
    Start
    ret_val: = v.insert_name (v);
    v.get_Name;
    end;

    o/p: my_name_in_Alias

    What is better to use the put_name or use the function insert_name.
    I manipulate the object when it is passed to a function.

    Thanks in advance,
    Kind regards
    Gaurav R

    As Billy said above, each member method has implicitly (which can be made explicit, as with "put_name", when required, for example, to specify the "nocopy" option) parameter named 'home '. For member functions, the passage of default mode is "inside". For the procedures of members, the passage of default mode is "outside". Therefore, the actual signature of the function of your 'insert_name":

    ...
    member function insert_name(self in my_obj, v_my_obj in out nocopy my_obj) return pls_integer
    ...
    

    Since you don't self directly access this function, it is logically equivalent to a static type function (which has no implicit setting of "self"):

    ...
    static function insert_name(v_my_obj in out nocopy my_obj) return pls_integer
    ...
    

    which is basically no different than using a non-object function that takes a parameter of type of object:

    create function insert_name(v_my_obj in out nocopy my_obj) return pls_integer
    

    Gerard

Maybe you are looking for

  • Kernel Panic on install OS Sierra

    After the launch of an installation for OS Sierra on my 15-inch Macbook Pro, I went to see a Kernel Panic at startup upward. After you restart the boot process stalls and pressing any key the kernel panic appears.  The machine starts in safe mode, I

  • Tuguu SLU/DomalQ

    DomalQ - Tuguu SLU was installed on my computer the 16/03/2013 and I can't remove it from my computer I try the Control Panel, it would not let me delete [Moved from comments]

  • Error code 8024200d when you try to install service pack 2 on vista 32-bit

    SP2 and run system update tool update always fails.

  • SystemPrompt input type do only digital

    Hi all I want SystemPrompt keyboard of only digital input field. By default it gives alphanumeric. How do I change this? Please help me. Thank you & best regards Sanjit

  • BlackBerry Smartphones BB 9700 calendar

    I am running OS5,.979 on my 9700. Is it possible to set the calendar to display as "month view" as its current default rather than the default view from "today? I never use the month calendar and get tired of having to reset every day. Thank you.