Hard Coded Strings
Hi All
I want to eliminate the need for hard coded values in my code . for example when I set an attribute as
setAttribute ("A", "This a good day")
I want to eliminate "This a good day" from the code and replace it with something else more sophisticated to reduce the code maintenance in the future . Do you have any solution for that ?
Thanks
Hi,
You can create your own messages in Application Developer Responsibility and then you can access those messages in OAF.
suppose message name is XX_TEST
so in the code use it like
String msg = pageContext.getMessage("<application short name of message>","XX_TEST",null);
then this variable you can use anywhere you want in the code.
setAttribute("A",msg);
Thanks,
Gaurav
Similar Messages
-
Passing hard-coded string parameters into a FUNCTION
I created a Function that accepts two INT and two VARCHAR2 parameters. I want to access it in a SELECT statement and manually pass in parameters to it.
For example,
SELECT FN_MYFUNC(10, 20, 'string1', 'string2') FROM DUAL;
However, when I do this the hard-coded strings don't seem to be recognized by the Function. But, if I were to pass in a Fieldname from a TABLE then the above function works. Is there something extra I need to do to pass in hard-coded strings into a function?I have pasted the function where this problem is occuring below. If I use it in a SELECT, for example....
SELECT fn_GetRegValueFromRegData(3, 3, 'REG', '119') FROM DUAL;
.....it returns blank everytime when it should return a numeric value. However, this only occurs if I hard-code the parameter values (like above). However, if I pass in fieldnames from a TABLE, for example.....
SELECT fn_GetRegValueFromRegData(RegLink, EeLink, ChqType, RegCode) FROM RegData;
......then I get data back! Any idea why data is returned when I pass in fieldnames but not when I pass in hard-coded parameter values?
=================================================
CREATE OR REPLACE FUNCTION fn_GetRegValueFromRegData
(p_RegLink INT,
p_EELink INT,
p_ChequeType VARCHAR2,
p_RegCode1 VARCHAR2,
p_RegCode2 VARCHAR2 := '-1')
RETURN NUMBER
AS
v_regvalue NUMBER(14,5);
BEGIN
BEGIN
--retrieve data using the REGCODE1 value
SELECT a.regvalue INTO v_regvalue
FROM regdata a
WHERE a.RegCode = p_RegCode1
AND a.RegLink = p_RegLink
AND a.eeLink = p_EELink
AND a.ChqType = p_ChequeType
AND a.EndDate IS NULL;
EXCEPTION
WHEN OTHERS
THEN
--retrieve data using the REGCODE2 value
SELECT a.regvalue INTO v_regvalue
FROM regdata a
WHERE a.RegCode = p_RegCode2
AND a.RegLink = p_RegLink
AND a.eeLink = p_EELink
AND a.ChqType = p_ChequeType
AND a.EndDate IS NULL;
END;
RETURN v_regvalue;
END;
/ -
Replacing hard-coded strings using Netbeans
Hi
Iam using Netbeans 4.0 to replace all the hard-coded string with resourceBundle.getString("...") and prepare the properties file. Thing is it picks all the contents within double quotes and replaces them.
To avoid replacing all the entire strings, there is an option with name, Non-Internationalization format, using which we can specify the regular expression that can be used for filtering/ignoring the strings that falls under that regular expression.
For example, if we use "System.out.println" in the regular expression, then the hard-coded strings within println statements are ignored and are not replaced, as one in interested only in translating user-interface strings and not debugging strings. The problem is, the utility searches for the specified word (System.out.println) and ignores the hard-coded string present in that line and replaces the strings in all the remaining lines in the println statement. I need the entire string in the println statement to be ignored and not replaced.
Can anyone suggest me a solution to ignore the complete string in the println statement.
Rgds
JaganHello Tae,
In your specific case, i'll go with your Dev Leader since the value returned by the method is not controlled inside the program. If sometime down the line the method returns '1' instead of 'X', if you use the CONSTANT you can change it in the declaration part without bothering about where it is used.
But you should use meaningful names while defining your CONSTANTS for e.g., instead of C_X use C_TRUE.
Also bear in mind all organisation data(e.g., Plant, Company Code, Controlling Area etc.) should be defined as CONSTANTS & not hard-coded. In these cases i prefer using the variant tables(TVARVC) to maintain the constants.
I don't want to start a flame-war here, but imho although use of CONSTANTS increases the maintainability but too much usage of them reduces the readability. With all due respect to those "over diligent" QA reviewers AUTHORITY-OBJECT 'S_TCODE', ASSIGN COMPONENT 'MATNR' et al. are not hard-codes, please don't ask us to declare them as constants
BR,
Suhas
PS: I remember there was an SDN blog on the same topic & it was definitely an interesting read. -
Hard coded SQL string doesn't run with error PLS-00103
I have created a package with 34 stored procedures [pre]to create some materialized view with hard coded SQL [pre]string (client required for this hard coding). The [pre]first part with 21 simple create statements has
[pre]worked fine. 2nd part with 11 complicated create [pre]statements, only first one has worked. all others [pre]have not worked.
[pre]
I used dbms_output.put_line (sql_string) to check the [pre]individual create statement, it has looked fine. I [pre]have run individual SP within package. I have got [pre]error message as ORA-06550: line 1, column 45:
[pre]PLS-00103: Encountered the symbol "end-of-file" when [pre]expecting one of the following: ; [pre]
<an identifier> <a double-quoted delimited-identifier> [pre]The symbol ";" was substituted for "end-of-file" to [pre]continue.
[pre]I have checked SQL string between 1st part and 2nd [pre]part. They are the same and all with ';' to end SQL [pre]string and END SP name in the end. Please help me to [pre]identify where the problems are. Thanks. Followings [pre]are some sample SQL string:
[pre]PROCEDURE sp_1st_string
[pre]IS
[pre]BEGIN
[pre] EXECUTE IMMEDIATE 'CREATE MATERIALIZED VIEW
[pre]mv_name1 TABLESPACE space_name PARALLEL ( DEGREE [pre]DEFAULT INSTANCES DEFAULT ) BUILD IMMEDIATE REFRESH [pre]COMPLETE ON DEMAND WITH PRIMARY KEY AS SELECT col1, [pre]col2,col3, col4, col5 FROM tableone A, table_two B [pre]WHERE A.id = B.id';
[pre]COMMIT;
[pre]END sp_1st_string;
[pre]PROCEDURE sp_2nd_string
[pre]IS
[pre]BEGIN
[pre] EXECUTE IMMEDIATE ' CREATE MATERIALIZED VIEW
[pre]mv_name2 TABLESPACE PDE_DATA PARALLEL ( DEGREE [pre]DEFAULT INSTANCES DEFAULT ) BUILD IMMEDIATE REFRESH [pre]COMPLETE ON DEMAND WITH PRIMARY KEY AS select col1 .. [pre]col10 from tableone a, tabletwo b, tablethree c, [pre]tablefour d, tablefive e, tablesix f where clause;
[pre]COMMIT;
[pre]END sp_2nd_string;
Message was edited by:
citicbj
Message was edited by:
citicbjstevencallan:
Thanks for your advice. I have been thinking the above problem may be [pre]caused by this. If I run 'Create MV statement' in SQL PLUS or Toad, single quote [pre]will work. But when I put hard coded SQL string in package and stored [pre]procedure, it will cause compiling error. After I took off single quote, SP will be [pre][pre]compiled successfully. When I run package.sp, it will cause the problem. [pre]Here is the sample code:[pre]
[pre]CREATE MATERIALIZED VIEW my_mv TABLESPACE space_name [pre][pre]PARALLEL (DEGREE DEFAULT INSTANCES DEFAULT) BUILD IMMEDIATE [pre]REFRESH COMPLETE ON DEMAND WITH PRIMARY KEY AS select A.ID , [pre]A.CNTL_NUM, C.XX_CODE, D.FIRST_NAME, D.MDL_NAME, [pre]D.LAST_NAME, H.XX_DESC, TO_DATE(TO_CHAR(C.CREAT_TS, [pre]'MM/DD/YYYY'),'MM/DD/YY'), F.STATE, CASE WHEN A.XX_CODE IS NOT NULL [pre]THEN X END, E.X_DESC from TABLE1 A, TABLE2 B, TABLE3 C, TABLE4 [pre]D, TABLE5 E, TABLE6 F, TABLE7 G, TABLE8 H
[pre]where D.X_SW = 'X' and B.X_SW = X' and G.X_SW = 'X' and B.CNTL_ID = [pre]A.CNTL_ID and B.CNTL_ID = D.CNTL_ID and B.X_ID = C.X_ID and B.X_ID = [pre]G.X_ID and B.X_ID = F.X_ID and G.X_CD = H.X_CD and B.X_CD = E.X_CD [pre]and E.X_CD = '25' and C.ENRLMT_ID NOT LIKE 'O%'; [pre]
[pre]When I hard coded this statement in package and sp, I have to take off single [pre]quote ' ' form 'MM/DD/YYYY', 'MM/DD/YY', X_SW ='X', X_CD = '25' AND NOT [pre]LIKE 'O%', Then I can compile whole package successfully. This is why I [pre]mentioned that 1st part 21 simple create statement work because they don't have [pre]these single quote in the statement. In 2nd part with 13 complicated create [pre]statements, some of them have no single quote in the statement. They will [pre]run. Some of them with single quote in statement. They will have the problem [pre]to run if I take off single for compiling. [pre]
[pre]Please give me some idea what is the reason. Thanks a lot. -
Error in setting final variable using properties vs hard coding
I am getting the following error when trying to use this line of code
public static final String MESSAGES_BUNDLE_NAME = System.getProperty("messages");
java.lang.ExceptionInInitializerError: java.lang.NullPointerException
When I change the above line to
public static final String MESSAGES_BUNDLE_NAME = "messages_usa";
the program works fine.
Any ideas as to why this is happening would be greatly appreciated.
Thanks,
BorisI am sorry, but I realized now that I did notdiscribe
the problem fully.
The error is happening on the following line
return APPLICATION_RESOURCE_BUNDLE.getString(key);
So it looks like APPLICATION_RESOURCE_BUNDLE is
becoming null.
No that is not what is happening.
This is the error that you posted.....
java.lang.ExceptionInInitializerError:
java.lang.NullPointerException
The first part is the exception, not the second part
(although the second causes the first.)
The java docs specifically point out that a
NullPointerException is returned if the base name is
null - the parameter to getBundle().
The initialization exception occurs because when it
tries to excecute the initialization expression for
the final, then the getBundle() is throwing the null
pointer exception.
It is is not clear what you code is actually supposed
to be doing but I think you suggested that your are
using a system property. If so then it means that
that system property is not defined. And it works
when you use a hard coded value because the hard coded
value is defined.From this explanation I don't understand why initializing the bundle name from System.getProperty() works in the same class with the bundle obejct initialization, but does not work when it is in another class from bundle object initialization. -
Tips on avoiding hard coded paths and make a java app platform independent
HI all,
I would like to gather some tips on how to avoid hard coded file paths, which are plenty in the application I work on and which I inherited from previous programmers.
Also, when deploying to the production server, my app goes from a Windows platform to a Linux machine.
I am curious to know what tricks and tools other programmers find useful in similar contexts.
I am sure many of us would benefit from the discussion.
Thank you !Actually, Java does this for you; you can use unix-style paths and they will still work, even on Windoze. To wit:
public static void main(String[] args) {
File f = new File("/");
System.out.println(f.getAbsolutePath());
}Yields: C:\
public static void main(String[] args) {
File f = new File("/Program Files");
System.out.println(f.getAbsolutePath());
}Yields: C:\Program Files -
Hi All,
I am trying to load shape file into a sql spatial table. A execution process task is used to run the ogr2ogr.exe program.
This is how the process tab looks like .
Executable : C:\gdal_ogr2ogr\bin\gdal\apps\ogr2ogr.exe
Argument : -f MSSQLSpatial MSSQL:server=SQL-ABC-DEV;database=MYSIMPLE_Dev;Trusted_Connection=True;\\mypath\files\shares\Data\www.mypage.htm\my_sample_file.shp
Success value : 1
For above settings, package runs fine. The spatial table is created in SQL server db. However when hard-coded SQL server name and database name are replaced with global variables , the spatial table is not created in the database. Yet the package runs fine.
It does not throw any errors. (I am using another variable for full file path. It is not causing any errors though)
" -f MSSQLSpatial MSSQL:server="+@[$Project::SQLServerName]+";database="+ @[$Project::DatabaseName] +";Trusted_Connection=True;"+ @[User::Filepath] + "\\my_sample_file.shp"
Both variables are string type. Can anyone tell me what I am doing wrong here please?
I am running this in VS 2012.
Thanks for your help in advance..
shamenThere should be a single space just after True:
before
" -f MSSQLSpatial MSSQL:server="+@[$Project::SQLServerName]+";database="+ @[$Project::DatabaseName] +";Trusted_Connection=True;"+ @[User::Filepath] + "\\my_sample_file.shp"
after keeping the space
" -f MSSQLSpatial MSSQL:server="+@[$Project::SQLServerName]+";database="+ @[$Project::DatabaseName] +";Trusted_Connection=True; "+ @[User::Filepath] + "\\my_sample_file.shp"
Thanks
shamen -
How could I replace hard coded value in my sql query with constant value?
Hi all,
Could anyone help me how to replace hardcoded value in my sql query with constant value that might be pre defined .
PROCEDURE class_by_day_get_bin_data
in_report_parameter_id IN NUMBER,
in_site_id IN NUMBER,
in_start_date_time IN TIMESTAMP,
in_end_date_time IN TIMESTAMP,
in_report_level_min IN NUMBER,
in_report_level_max IN NUMBER
IS
bin_period_length NUMBER(6,0);
BEGIN
SELECT MAX(period_length)
INTO bin_period_length
FROM bin_data
JOIN site_to_data_source_lane_v
ON bin_data.data_source_id = site_to_data_source_lane_v.data_source_id
JOIN bin_types
ON bin_types.bin_type = bin_data.bin_type
WHERE site_to_data_source_lane_v.site_id = in_site_id
AND bin_data.start_date_time >= in_start_date_time - numtodsinterval(1, 'DAY')
AND bin_data.start_date_time < in_end_date_time + numtodsinterval(1, 'DAY')
AND bin_data.bin_type = 2
AND bin_data.period_length <= 60;
--Clear the edr_class_by_day_bin_data temporary table and populate it with the data for the requested
--report.
DELETE FROM edr_class_by_day_bin_data;
SELECT site_to_data_source_lane_v.site_id,
site_to_data_source_lane_v.site_lane_id,
site_to_data_source_lane_v.site_direction_id,
site_to_data_source_lane_v.site_direction_name,
bin_data_set.start_date_time,
bin_data_set.end_date_time,
bin_data_value.bin_id,
bin_data_value.bin_value
FROM bin_data
JOIN bin_data_set
ON bin_data.bin_serial = bin_data_set.bin_serial
JOIN bin_data_value
ON bin_data_set.bin_data_set_serial = bin_data_value.bin_data_set_serial
JOIN site_to_data_source_lane_v
ON bin_data.data_source_id = site_to_data_source_lane_v.data_source_id
AND bin_data_set.lane = site_to_data_source_lane_v.data_source_lane_id
JOIN (
SELECT CAST(report_parameter_value AS NUMBER) lane_id
FROM report_parameters
WHERE report_parameters.report_parameter_id = in_report_parameter_id
AND report_parameters.report_parameter_group = 'LANE'
AND report_parameters.report_parameter_name = 'LANE'
) report_lanes
ON site_to_data_source_lane_v.site_lane_id = report_lanes.lane_id
JOIN (
SELECT CAST(report_parameter_value AS NUMBER) class_id
FROM report_parameters
WHERE report_parameters.report_parameter_id = in_report_parameter_id
AND report_parameters.report_parameter_group = 'CLASS'
AND report_parameters.report_parameter_name = 'CLASS'
) report_classes
ON bin_data_value.bin_id = report_classes.class_id
JOIN edr_rpt_tmp_inclusion_table
ON TRUNC(bin_data_set.start_date_time) = TRUNC(edr_rpt_tmp_inclusion_table.date_time)
WHERE site_to_data_source_lane_v.site_id = in_site_id
AND bin_data.start_date_time >= in_start_date_time - numtodsinterval(1, 'DAY')
AND bin_data.start_date_time < in_end_date_time + numtodsinterval(1, 'DAY')
AND bin_data_set.start_date_time >= in_start_date_time
AND bin_data_set.start_date_time < in_end_date_time
AND bin_data.bin_type = 2
AND bin_data.period_length = bin_period_length;
END class_by_day_get_bin_data;In the above code I'm using the hard coded value 2 for bin type
bin_data.bin_type = 2But I dont want any hard coded number or string in the query.
How could I replace it?
I defined conatant value like below inside my package body where the actual procedure comes.But I'm not sure whether I have to declare it inside package body or inside the procedure.
bin_type CONSTANT NUMBER := 2;But it does't look for this value. So I'm not able to get desired value for the report .
Thanks.
Edited by: user10641405 on May 29, 2009 1:38 PMDeclare the constant inside the procedure.
PROCEDURE class_by_day_get_bin_data(in_report_parameter_id IN NUMBER,
in_site_id IN NUMBER,
in_start_date_time IN TIMESTAMP,
in_end_date_time IN TIMESTAMP,
in_report_level_min IN NUMBER,
in_report_level_max IN NUMBER) IS
bin_period_length NUMBER(6, 0);
v_bin_type CONSTANT NUMBER := 2;
BEGIN
SELECT MAX(period_length)
INTO bin_period_length
FROM bin_data
JOIN site_to_data_source_lane_v ON bin_data.data_source_id =
site_to_data_source_lane_v.data_source_id
JOIN bin_types ON bin_types.bin_type = bin_data.bin_type
WHERE site_to_data_source_lane_v.site_id = in_site_id
AND bin_data.start_date_time >=
in_start_date_time - numtodsinterval(1, 'DAY')
AND bin_data.start_date_time <
in_end_date_time + numtodsinterval(1, 'DAY')
AND bin_data.bin_type = v_bin_type
AND bin_data.period_length <= 60;
--Clear the edr_class_by_day_bin_data temporary table and populate it with the data for the requested
--report.
DELETE FROM edr_class_by_day_bin_data;
INSERT INTO edr_class_by_day_bin_data
(site_id,
site_lane_id,
site_direction_id,
site_direction_name,
bin_start_date_time,
bin_end_date_time,
bin_id,
bin_value)
SELECT site_to_data_source_lane_v.site_id,
site_to_data_source_lane_v.site_lane_id,
site_to_data_source_lane_v.site_direction_id,
site_to_data_source_lane_v.site_direction_name,
bin_data_set.start_date_time,
bin_data_set.end_date_time,
bin_data_value.bin_id,
bin_data_value.bin_value
FROM bin_data
JOIN bin_data_set ON bin_data.bin_serial = bin_data_set.bin_serial
JOIN bin_data_value ON bin_data_set.bin_data_set_serial =
bin_data_value.bin_data_set_serial
JOIN site_to_data_source_lane_v ON bin_data.data_source_id =
site_to_data_source_lane_v.data_source_id
AND bin_data_set.lane =
site_to_data_source_lane_v.data_source_lane_id
JOIN (SELECT CAST(report_parameter_value AS NUMBER) lane_id
FROM report_parameters
WHERE report_parameters.report_parameter_id =
in_report_parameter_id
AND report_parameters.report_parameter_group = 'LANE'
AND report_parameters.report_parameter_name = 'LANE') report_lanes ON site_to_data_source_lane_v.site_lane_id =
report_lanes.lane_id
JOIN (SELECT CAST(report_parameter_value AS NUMBER) class_id
FROM report_parameters
WHERE report_parameters.report_parameter_id =
in_report_parameter_id
AND report_parameters.report_parameter_group = 'CLASS'
AND report_parameters.report_parameter_name = 'CLASS') report_classes ON bin_data_value.bin_id =
report_classes.class_id
JOIN edr_rpt_tmp_inclusion_table ON TRUNC(bin_data_set.start_date_time) =
TRUNC(edr_rpt_tmp_inclusion_table.date_time)
WHERE site_to_data_source_lane_v.site_id = in_site_id
AND bin_data.start_date_time >=
in_start_date_time - numtodsinterval(1, 'DAY')
AND bin_data.start_date_time <
in_end_date_time + numtodsinterval(1, 'DAY')
AND bin_data_set.start_date_time >= in_start_date_time
AND bin_data_set.start_date_time < in_end_date_time
AND bin_data.bin_type = v_bin_type
AND bin_data.period_length = bin_period_length;
END class_by_day_get_bin_data; -
Passing hard coded array to a method
how to passing hard coded array to a method
like method1("eee","eoe","eee",.....)
which should populate a array of strings (say arr[]) for the method
what can be done??or if you're using Java 5.0 declare the method aspublic void method(String... array) {
} -
Parse schema name - Avoiding hard-coded schema names
Hi all,
I have been trying to find a similar thread but had no luck. I want to avoid hard-coding schema names in my reports. I have tried to use a Substitution string but I don't seem to be able to reference it by just doing :default_schema. I already reference the parsing schema like this: #OWNER# which is saving me a lot of time. Is there any way to create additional variables like that one instead of those substitution strings that can't be parsed in a query?
Thanks a lot for your help.
Regards,
werot.Werot wrote:
I have been trying to find a similar thread but had no luck. I want to avoid hard-coding schema names in my reports. I have tried to use a Substitution string but I don't seem to be able to reference it by just doing :default_schema. I already reference the parsing schema like this: #OWNER# which is saving me a lot of time. Is there any way to create additional variables like that one instead of those substitution strings that can't be parsed in a query?
Will you actually get any benefit from using substitution strings? They are also hard-coded at design time. You could use application items if you need something dynamic.
Bind variable syntax (:default_schema) will not work for lexical substitution of substitution string and application item values in report queries. You have to use static text (&DEFAULT_SCHEMA.) references (and be aware of the potential for SQL injection that this exposes).
I wouldn't recommend using schema qualifiers directly in APEX applications. I would use grants, synonyms and views at the database level. -
Single line code is hard coded, can be fixed using CONCATENATE
Hello,
Very Good Morning!
This part of the line is hard coded...we need to use CONCATENATE
st_txt-cnm9 = 'CNPJ ' + CGC_NUMBER.
This line is hardcoded in the program.
We need to convert it to character/string and concatenate with the CNPJ
Can any one show me the way that i need to do this.....
Any suggestions would be appreciated......
Regards,
DeveloperHello,
Very Good Morning!
Thank you for your response.
I need to adjust the line of code st_txt-cnm9 = 'CNPJ ' + CGC_NUMBER.
As CGC_NUMBER cannot be added to a character or a string. Please convert the number to a character/string and concatenate with CNPJ, else the program will fail.
Will the suggestions that you had provided satisfy the condition 'CNPJ ' + CGC_NUMBER. ?
Yes, it will be inserted into st_txt-cnm9. Can any body explain.
Thanks...
Developer -
Native SQL Performance Difference Between Hard-Coded Value and Parameter
Hi,
I have a native SQL (Oracle) query (fairly long & complex with a few sub-queries) that returns in under a second in both ODSI and using an external SQL tool. This query has a hard-coded value for a particular column, namely, a date column.
When I modify the ODSI function signature so that I pass in a parameter and then replace the hard-coded value in the native SQL with the appropriate parameter binding notation (i.e. '?'), the query takes much longer (2-30 seconds). The duration of the query depends on how many records are actually returned, so it must be running a separate query for each of the results (i.e. the more results returned, the longer the query takes to return).
What can I do to keep the duration of my ODSI query low while allowing for the parameter?OSDI plan with date parameter:
<?xml version="1.0"?>
<source ns="fn-bea" name="jdbc.wcb.fineos" kind="relational" tip="jdbc.wcb.fineos">
<![CDATA[select codeid, description, FEE_CODE_DOC_TYPE, ismax, isovr
from
select distinct
sd.codeid, sd.description,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-MAX (MAXIMUM AMOUNT)'
) ISMAX,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-OVR (Overrideable)'
ISOVR,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-INT (Internet Enterable)'
ISINT
,trow.answerstr FEE_CODE_DOC_TYPE
from wcbapp.tocorganisation o, wcbapp.tolpartydetails pd, wcbapp.tolserviceagrmtforprovider safp,
wcbapp.tolserviceagreement sa, wcbapp.tolserviceagreementversion sav, wcbapp.rsrvchrgrsrvagrvrserviceagreem scg_sav,
wcbapp.tolservicechargegroup scg, wcbapp.tolservicechargegroupversion scgv, wcbapp.tolserviceprovisionagreement spa,
wcbapp.tolservicedefinition sd
,wcbapp.trow trow, wcbapp.tlookupversion tlookupversion, wcbapp.tlookup tlookup
where
trow.i_lkpver_rows = tlookupversion.i
and trow.c_lkpver_rows = tlookupversion.c
and tlookupversion.i_lookup_versions = tlookup.i
and tlookupversion.c_lookup_versions = tlookup.c
and sd.codeid = trow.minstr_1
and sd.codeid = trow.maxstr_1
and tlookup.name = 'FeeCodeToDocumentLookup' and
spa.i_service_serviceratede = sd.i and
spa.c_service_serviceratede = sd.c and
spa.i_srchrgrv_serviceratede = scgv.i and
spa.c_srchrgrv_serviceratede = scgv.c and
scgv.i_srvchrgr_servicecharge = scg.i and
scgv.c_srvchrgr_servicecharge = scg.c and
scg.i = scg_sav.i_from and
scg.c = scg_sav.c_from and
scg_sav.i_to = sav.i and
scg_sav.c_to = sav.c and
sav.i_srvcagrm_serviceagreem = sa.i and
sav.c_srvcagrm_serviceagreem = sa.c and
sa.i = safp.i_srvcagrm_provider and
sa.c = safp.c_srvcagrm_provider and
safp.i_prtdtls_serviceagreem = pd.i and
safp.c_prtdtls_serviceagreem = pd.c and
pd.i_ocprty_party = o.i and
pd.c_ocprty_party = o.c and
? between safp.effectivedate and safp.enddate and
o.customerno = ? || ?
order by sd.codeid
where ISINT = 1]]>
<variable name="__fparam0" kind="EXTERNAL">
</variable>
<variable name="__fparam1" kind="EXTERNAL">
</variable>
<variable name="__fparam2" kind="EXTERNAL">
</variable>
</source>
OSDI plan with date constant:
<?xml version="1.0"?>
<source ns="fn-bea" name="jdbc.wcb.fineos" kind="relational" tip="jdbc.wcb.fineos">
<![CDATA[select codeid, description, FEE_CODE_DOC_TYPE, ismax, isovr
from
select distinct
sd.codeid, sd.description,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-MAX (MAXIMUM AMOUNT)'
) ISMAX,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-OVR (Overrideable)'
ISOVR,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-INT (Internet Enterable)'
ISINT
,trow.answerstr FEE_CODE_DOC_TYPE
from wcbapp.tocorganisation o, wcbapp.tolpartydetails pd, wcbapp.tolserviceagrmtforprovider safp,
wcbapp.tolserviceagreement sa, wcbapp.tolserviceagreementversion sav, wcbapp.rsrvchrgrsrvagrvrserviceagreem scg_sav,
wcbapp.tolservicechargegroup scg, wcbapp.tolservicechargegroupversion scgv, wcbapp.tolserviceprovisionagreement spa,
wcbapp.tolservicedefinition sd
,wcbapp.trow trow, wcbapp.tlookupversion tlookupversion, wcbapp.tlookup tlookup
where
trow.i_lkpver_rows = tlookupversion.i
and trow.c_lkpver_rows = tlookupversion.c
and tlookupversion.i_lookup_versions = tlookup.i
and tlookupversion.c_lookup_versions = tlookup.c
and sd.codeid = trow.minstr_1
and sd.codeid = trow.maxstr_1
and tlookup.name = 'FeeCodeToDocumentLookup' and
spa.i_service_serviceratede = sd.i and
spa.c_service_serviceratede = sd.c and
spa.i_srchrgrv_serviceratede = scgv.i and
spa.c_srchrgrv_serviceratede = scgv.c and
scgv.i_srvchrgr_servicecharge = scg.i and
scgv.c_srvchrgr_servicecharge = scg.c and
scg.i = scg_sav.i_from and
scg.c = scg_sav.c_from and
scg_sav.i_to = sav.i and
scg_sav.c_to = sav.c and
sav.i_srvcagrm_serviceagreem = sa.i and
sav.c_srvcagrm_serviceagreem = sa.c and
sa.i = safp.i_srvcagrm_provider and
sa.c = safp.c_srvcagrm_provider and
safp.i_prtdtls_serviceagreem = pd.i and
safp.c_prtdtls_serviceagreem = pd.c and
pd.i_ocprty_party = o.i and
pd.c_ocprty_party = o.c and
'01-MAY-11' between safp.effectivedate and safp.enddate and
o.customerno = ? || ?
order by sd.codeid
where ISINT = 1]]>
<variable name="__fparam0" kind="EXTERNAL">
</variable>
<variable name="__fparam1" kind="EXTERNAL">
</variable>
</source>
ODSI Audit with date parameter:
[Thu May 12 13:02:23 GMT-06:00 2011] Starting...
Query compilation time: 0 ms
Query evaluation time: 16142 ms
Operation duration: 16189 ms
Audit Event:
common/application
user: weblogic
name: ClaimsDataspace
server: AdminServer
eventkind: evaluation
query/cache/queryplan
found: false
type: XQUERY_PLAN_CACHE
query/cache/queryplan
type: XQUERY_PLAN_CACHE
inserted: true
query/performance
compiletime: 0
common/session/query/invocation
time: Thu May 12 13:02:07 GMT-06:00 2011
blocksize: 65536
duration: 16001
common/session/query/invocation
time: Thu May 12 13:02:23 GMT-06:00 2011
blocksize: 65536
duration: 47
common/session/query/invocation
time: Thu May 12 13:02:23 GMT-06:00 2011
blocksize: 65536
duration: 46
common/session/query/invocation
time: Thu May 12 13:02:23 GMT-06:00 2011
blocksize: 35779
duration: 16
query/wrappers/relational
source: jdbc.wcb.fineos
sql:
select codeid, description, FEE_CODE_DOC_TYPE, ismax, isovr
from
select distinct
sd.codeid, sd.description,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-MAX (MAXIMUM AMOUNT)'
) ISMAX,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-OVR (Overrideable)'
ISOVR,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-INT (Internet Enterable)'
ISINT
,trow.answerstr FEE_CODE_DOC_TYPE
from wcbapp.tocorganisation o, wcbapp.tolpartydetails pd, wcbapp.tolserviceagrmtforprovider safp,
wcbapp.tolserviceagreement sa, wcbapp.tolserviceagreementversion sav, wcbapp.rsrvchrgrsrvagrvrserviceagreem scg_sav,
wcbapp.tolservicechargegroup scg, wcbapp.tolservicechargegroupversion scgv, wcbapp.tolserviceprovisionagreement spa,
wcbapp.tolservicedefinition sd
,wcbapp.trow trow, wcbapp.tlookupversion tlookupversion, wcbapp.tlookup tlookup
where
trow.i_lkpver_rows = tlookupversion.i
and trow.c_lkpver_rows = tlookupversion.c
and tlookupversion.i_lookup_versions = tlookup.i
and tlookupversion.c_lookup_versions = tlookup.c
and sd.codeid = trow.minstr_1
and sd.codeid = trow.maxstr_1
and tlookup.name = 'FeeCodeToDocumentLookup' and
spa.i_service_serviceratede = sd.i and
spa.c_service_serviceratede = sd.c and
spa.i_srchrgrv_serviceratede = scgv.i and
spa.c_srchrgrv_serviceratede = scgv.c and
scgv.i_srvchrgr_servicecharge = scg.i and
scgv.c_srvchrgr_servicecharge = scg.c and
scg.i = scg_sav.i_from and
scg.c = scg_sav.c_from and
scg_sav.i_to = sav.i and
scg_sav.c_to = sav.c and
sav.i_srvcagrm_serviceagreem = sa.i and
sav.c_srvcagrm_serviceagreem = sa.c and
sa.i = safp.i_srvcagrm_provider and
sa.c = safp.c_srvcagrm_provider and
safp.i_prtdtls_serviceagreem = pd.i and
safp.c_prtdtls_serviceagreem = pd.c and
pd.i_ocprty_party = o.i and
pd.c_ocprty_party = o.c and
? between safp.effectivedate and safp.enddate and
o.customerno = ? || ?
order by sd.codeid
where ISINT = 1
parameters:
2011-05-01T00:00:00
DOC
007492
time: 16048
rows: 1967
query/performance
evaltime: 16142
query/service
result:
*** removed due to length ***
query/service
function: getFeeCodeByCaregiverEffectiveDate1
arity: 3
dataservice: ld:org/wcb/claims/payment/FINEOS/physical/SQL.ds
query:
import schema namespace t1 = "http://www.test.com/claims/payment" at "ld:org/wcb/claims/payment/FINEOS/physical/schemas/SQL.xsd";
declare namespace ns0="ld:org/wcb/claims/payment/FINEOS/physical/SQL";
declare namespace ns1="http://www.w3.org/2001/XMLSchema";
declare variable $__fparam0 as ns1:dateTime external;
declare variable $__fparam1 as ns1:string external;
declare variable $__fparam2 as ns1:string external;
fn:subsequence(
for $FeeCode3 in ns0:getFeeCodeByCaregiverEffectiveDate1($__fparam0,$__fparam1,$__fparam2)
return
$FeeCode3
,1,5000)
parameters:
2011-05-01T00:00:00
DOC
007492
common/time
duration: 16189
timestamp: Thu May 12 13:02:07 GMT-06:00 2011
[Thu May 12 13:02:23 GMT-06:00 2011] End
ODSI Audit with date constant:
[Thu May 12 13:10:00 GMT-06:00 2011] Starting...
Query compilation time: 0 ms
Query evaluation time: 359 ms
Operation duration: 375 ms
Audit Event:
common/application
user: weblogic
name: ClaimsDataspace
server: AdminServer
eventkind: evaluation
query/cache/queryplan
found: true
type: XQUERY_PLAN_CACHE
query/performance
compiletime: 0
common/session/query/invocation
time: Thu May 12 13:10:00 GMT-06:00 2011
blocksize: 59256
duration: 359
query/wrappers/relational
source: jdbc.wcb.fineos
sql:
select codeid, description, FEE_CODE_DOC_TYPE, ismax, isovr
from
select distinct
sd.codeid, sd.description,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-MAX (MAXIMUM AMOUNT)'
) ISMAX,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-OVR (Overrideable)'
ISOVR,
select count(*) from wcbapp.tolserviceset ss, wcbapp.RSERVICESRVCSETSERVICESETS sss, wcbapp.tolservicedefinition sd1 where
sss.i_from = sd.i and
sss.c_from = sd.c and
sss.i_to = ss.i and
sss.c_to = ss.c and
sd1.codeid = sd.codeid and
ss.name = 'FEEGROUP-INT (Internet Enterable)'
ISINT
,trow.answerstr FEE_CODE_DOC_TYPE
from wcbapp.tocorganisation o, wcbapp.tolpartydetails pd, wcbapp.tolserviceagrmtforprovider safp,
wcbapp.tolserviceagreement sa, wcbapp.tolserviceagreementversion sav, wcbapp.rsrvchrgrsrvagrvrserviceagreem scg_sav,
wcbapp.tolservicechargegroup scg, wcbapp.tolservicechargegroupversion scgv, wcbapp.tolserviceprovisionagreement spa,
wcbapp.tolservicedefinition sd
,wcbapp.trow trow, wcbapp.tlookupversion tlookupversion, wcbapp.tlookup tlookup
where
trow.i_lkpver_rows = tlookupversion.i
and trow.c_lkpver_rows = tlookupversion.c
and tlookupversion.i_lookup_versions = tlookup.i
and tlookupversion.c_lookup_versions = tlookup.c
and sd.codeid = trow.minstr_1
and sd.codeid = trow.maxstr_1
and tlookup.name = 'FeeCodeToDocumentLookup' and
spa.i_service_serviceratede = sd.i and
spa.c_service_serviceratede = sd.c and
spa.i_srchrgrv_serviceratede = scgv.i and
spa.c_srchrgrv_serviceratede = scgv.c and
scgv.i_srvchrgr_servicecharge = scg.i and
scgv.c_srvchrgr_servicecharge = scg.c and
scg.i = scg_sav.i_from and
scg.c = scg_sav.c_from and
scg_sav.i_to = sav.i and
scg_sav.c_to = sav.c and
sav.i_srvcagrm_serviceagreem = sa.i and
sav.c_srvcagrm_serviceagreem = sa.c and
sa.i = safp.i_srvcagrm_provider and
sa.c = safp.c_srvcagrm_provider and
safp.i_prtdtls_serviceagreem = pd.i and
safp.c_prtdtls_serviceagreem = pd.c and
pd.i_ocprty_party = o.i and
pd.c_ocprty_party = o.c and
'01-MAY-11' between safp.effectivedate and safp.enddate and
o.customerno = ? || ?
order by sd.codeid
where ISINT = 1
parameters:
DOC
007492
time: 344
rows: 500
query/performance
evaltime: 359
query/service
result:
*** removed due to length ***
query/service
function: getFeeCodeByCaregiverEffectiveDate1
arity: 2
dataservice: ld:org/wcb/claims/payment/FINEOS/physical/SQL.ds
query:
import schema namespace t1 = "http://www.test.com/claims/payment" at "ld:org/wcb/claims/payment/FINEOS/physical/schemas/SQL.xsd";
declare namespace ns0="ld:org/wcb/claims/payment/FINEOS/physical/SQL";
declare namespace ns1="http://www.w3.org/2001/XMLSchema";
declare variable $__fparam0 as ns1:string external;
declare variable $__fparam1 as ns1:string external;
fn:subsequence(
for $FeeCode3 in ns0:getFeeCodeByCaregiverEffectiveDate1($__fparam0,$__fparam1)
return
$FeeCode3
,1,500)
parameters:
DOC
007492
common/time
duration: 375
timestamp: Thu May 12 13:10:00 GMT-06:00 2011
[Thu May 12 13:10:00 GMT-06:00 2011] End
------------------------------------------------------------------------ -
Javac not checking hard coded dir paths???
I'm a beginner java person...have 17 years in computers experience, most Unix admin. I've been through into a job of trying to troubleshoot someone else's code that is long gone. A GUI window is not displaying and I'm getting java errors in the log files. After going back and trying to recompile the offending .java file, I don't get any errors at all. But on further research, have found a hard coded directory path to a file that doesn't exist on the workstation. Does javac not check all it's directory pointers to outside files during compilation. My experience with C++ was that it did...but java code compiler must not be the same??? I'm using java 1.2 compiler on a Solaris 2.7 workstation.
Anyone have any suggestions??? I'm befuzzled. Would be greatly appreciated. Thanks, MelisaSo How will I find all the missing dirs?? I guess with C++ compiler it was the includes that it went out and checked for that I was thinking about. Sorry. I'm string searching the source for all dir paths to files and I'll just have to manually verify they are in existence I guess. Thanks for your answer.
-
How to get the table name in the trigger definition without hard coding.
CREATE TRIGGER db.mytablename
AFTER UPDATE,INSERT
AS
INSERT INTO table1(col1)
SELECT InsRec.col1
FROM
INSERTED Ins
--Below i am calling one sp for which i have to pass the table name
EXEC myspname 'tablename'
In the above trigger,presently i am hard coding the tablename
but is it possible to get the table name dynamically on which the trigger is defined in order to avoid hard coding the table nameI really liked your audit table concept. You inspired me to modify it so that, the entire recordset gets captured and added a couple of other fields. Wanted to share my end result.
USE [YourDB]
GO
/****** Object: Trigger [dbo].[iudt_AutoAuditChanges] Script Date: 10/18/2013 12:49:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[iudt_AutoAuditChanges]
ON [dbo].[YourTable]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
SET NOCOUNT ON;
Declare @v_AuditID bigint
IF OBJECT_ID('dbo.AutoAudit','U') IS NULL BEGIN
CREATE TABLE [dbo].[AutoAudit]
( [AuditID] bigint identity,
[AuditDate] DateTime,
[AuditUserName] varchar(128),
[TableName] varchar(128) NULL,
[OldContent] XML NULL,
[NewContent] XML NULL
ALTER TABLE dbo.AutoAudit ADD CONSTRAINT
PK_AutoAudit PRIMARY KEY CLUSTERED
[AuditID]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
CREATE NONCLUSTERED INDEX [idx_AutoAudit_TableName_AuditDate] ON [dbo].[AutoAudit]
( [TableName] ASC,
[AuditDate] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
END
Select * Into #AuditDeleted from deleted
Select * Into #AuditInserted from inserted
While (Select COUNT(*) from #AuditDeleted) > 0 OR (Select COUNT(*) from #AuditInserted) > 0
Begin
INSERT INTO [dbo].[AutoAudit]
( [AuditDate], [AuditUserName], [TableName], [OldContent], [NewContent])
SELECT
GETDATE(),
SUSER_NAME(),
[TableName]=object_name([parent_obj]),
[OldContent]=CAST((SELECT TOP 1 * FROM #AuditDeleted D FOR XML RAW) AS XML),
[NewContent]=CAST((SELECT TOP 1 * FROM #AuditInserted I FOR XML RAW) AS XML)
FROM sysobjects
WHERE
[xtype] = 'tr'
and [name] = OBJECT_NAME(@@PROCID)
Set @v_AuditID = SCOPE_IDENTITY()
Delete from AutoAudit
Where AuditID = @v_AuditID
AND Convert(varchar(max),oldContent) = Convert(varchar(max),NewContent)
Delete top(1) from #AuditDeleted
Delete top(1) from #AuditInserted
End
END -
How to use model clause without hard coding the values in it?
Query
select acct_no,
gl_code,
CASE
WHEN entry_type_label IN ('Earned Revenue') THEN
'Earned Revenue'
ELSE
'Deferred Revenue Credit'
END AS entry_type_label,
CASE
WHEN entry_type_label IN ('Opening Balance') THEN
'Opening Balance'
WHEN entry_type_label IN ('Deferred Revenue Credit') THEN
'Invoice Amount'
WHEN entry_type_label IN ('Earned Revenue') THEN
'Earned Revenue'
WHEN entry_type_label IN ('Closing Balance') THEN
'Closing Balance'
ELSE
'Deferred Revenue Credit'
END AS label,
entry_type_no,
orig_chg_start_date,
period_no,
-amt as amt
from revrec_test
WHERE acct_no = 1788562
AND entry_type_no IN (2, 4) model dimension by(acct_no,
gl_code,
entry_type_label,
entry_type_no,
orig_chg_start_date,
period_no) measures(amt) rules upsert
all(amt 1788562,
'UNEARNED-10011561',
'Opening Balance',
2,
'02-OCT-17 08.30.00 AM',
190 = 0,
amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
190 = amt 1788562,
'UNEARNED-10011561',
'Deferred Revenue Credit',
2,
'02-OCT-17 08.30.00 AM',
190 - amt 1788562,
'EARNED-10011561',
'Earned Revenue',
4,
'02-OCT-17 08.30.00 AM',
190,
amt 1788562,
'UNEARNED-10011561',
'Opening Balance',
2,
'02-OCT-17 08.30.00 AM',
191 = amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
190,
amt 1788562,
'UNEARNED-10011561',
'Deferred Revenue Credit',
2,
'02-OCT-17 08.30.00 AM',
191 = 0,
amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
191 =
(amt 1788562, 'UNEARNED-10011561', 'Opening Balance', 2,
'02-OCT-17 08.30.00 AM', 191 + amt 1788562, 'UNEARNED-10011561',
'Deferred Revenue Credit', 2, '02-OCT-17 08.30.00 AM', 191) - amt
1788562,
'EARNED-10011561',
'Earned Revenue',
4,
'02-OCT-17 08.30.00 AM',
191,
amt 1788562,
'UNEARNED-10011561',
'Opening Balance',
2,
'02-OCT-17 08.30.00 AM',
192 = amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
191,
amt 1788562,
'UNEARNED-10011561',
'Deferred Revenue Credit',
2,
'02-OCT-17 08.30.00 AM',
192 = 0,
amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
192 =
(amt 1788562, 'UNEARNED-10011561', 'Opening Balance', 2,
'02-OCT-17 08.30.00 AM', 192 + amt 1788562, 'UNEARNED-10011561',
'Deferred Revenue Credit', 2, '02-OCT-17 08.30.00 AM', 192) - amt
1788562,
'EARNED-10011561',
'Earned Revenue',
4,
'02-OCT-17 08.30.00 AM',
192,
amt 1788562,
'UNEARNED-10011561',
'Opening Balance',
2,
'02-OCT-17 08.30.00 AM',
193 = amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
192,
amt 1788562,
'UNEARNED-10011561',
'Deferred Revenue Credit',
2,
'02-OCT-17 08.30.00 AM',
193 = 0,
amt 1788562,
'UNEARNED-10011561',
'Closing Balance',
2,
'02-OCT-17 08.30.00 AM',
193 =
(amt 1788562, 'UNEARNED-10011561', 'Opening Balance', 2,
'02-OCT-17 08.30.00 AM', 193 + amt 1788562, 'UNEARNED-10011561',
'Deferred Revenue Credit', 2, '02-OCT-17 08.30.00 AM', 193) - amt
1788562,
'EARNED-10011561',
'Earned Revenue',
4,
'02-OCT-17 08.30.00 AM',
193)
ORDER BY period_no, entry_type_no;
The above query works fine. But i have hard coded the values. I want to do the same operation for different account number which is going to have different periodic no. How can I achieve it?
Thanks in advance.Create Statement
CREATE TABLE table_one(
ACCT_NO NUMBER(38),
GL_CODE VARCHAR2(300),
ENTRY_TYPE_LABEL CHAR(50),
ENTRY_TYPE_NO NUMBER,
ORIG_CHG_START_DATE TIMESTAMP(0) WITH LOCAL TIME ZONE,
ORIG_CHG_END_DATE TIMESTAMP(0) WITH LOCAL TIME ZONE,
PERIOD_NO NUMBER(38),
AMT NUMBER(38,10)
Insert Statement
INSERT ALL
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'U-11561','Deferred Revenue Debit',3,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',100,13.87)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'E-11561','Earned Revenue',4,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',102,-14.83)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'E-11561','Earned Revenue',4,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',101,-14.35)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'E-11561','Earned Revenue',4,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',100,-13.87)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'U-11561','Deferred Revenue Debit',3,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',103,0.95)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'U-11561','Deferred Revenue Debit',3,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',102,14.83)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'U-11561','Deferred Revenue Debit',3,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',101,14.35)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'E-11561','Earned Revenue',4,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',103,-0.95)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1001,'U-11561','Deferred Revenue Credit',2,'02-OCT-17 08.30.00 AM','01-JAN-18 01.30.00 PM',100,-44)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,44.91)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Accounts Receivable',1,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',104,60)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,3.93)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,11.75)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,6.86)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,-7.82)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,-23.47)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,-13.69)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,-6.86)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,7.82)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,23.47)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,13.69)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',104,-9.13)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,-44.91)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,-44.91)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,-35.91)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,-3.93)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,44.91)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',104,9.13)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Earned Revenue',4,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',106,-11.75)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Credit',2,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,38.48)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Credit',2,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,-19.24)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Credit',2,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',104,-60)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Accounts Receivable',1,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,38.48)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Accounts Receivable',1,'20-DEC-13 09.30.00 AM','16-FEB-14 09.30.00 AM',105,19.24)
INTO table_one(acct_no, gl_code, entry_type_label, entry_type_no, orig_chg_start_date, orig_chg_end_date, period_no, amt) VALUES(1002,'Recurring Flat Fees COA Code','Deferred Revenue Debit',3,'17-NOV-13 09.30.00 AM','16-FEB-14 09.30.00 AM',107,35.91)
SELECT * FROM dual;
Expected Result
S.NO
ACCT_NO
GL_CODE
ENTRY_TYPE_LABEL
ENTRY_TYPE_NO
ORIG_CHG_START_DATE
PERIOD_NO
AMT
DESCRIPTION
1
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
100
0
Opening Account
2
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
100
44
Invoice
3
1001
E-11561
Earned Revenue
4
02-OCT-17 08.30.00 AM
100
13.87
Invoice Paid
4
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
100
30.13
Closing Account
5
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
101
30.13
Opening Account
6
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
101
0
Invoice
7
1001
E-11561
Earned Revenue
4
02-OCT-17 08.30.00 AM
101
14.35
Invoice Paid
8
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
101
15.78
Closing Account
9
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
102
15.78
Opening Account
10
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
102
0
Invoice
11
1001
E-11561
Earned Revenue
4
02-OCT-17 08.30.00 AM
102
14.83
Invoice Paid
12
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
102
0.95
Closing Account
13
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
103
0.95
Opening Account
14
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
103
0
Invoice
15
1001
E-11561
Earned Revenue
4
02-OCT-17 08.30.00 AM
103
0.95
Invoice Paid
16
1001
U-11561
Deferred Revenue Credit
2
02-OCT-17 08.30.00 AM
103
0
Closing Account
Description
We must start opening account as zero and end with closing account as zero by doing manipulation with invoice and invoice paid.
Process
Initial Stage
Subsequent stage
Opening Account
0
(=closing Account)
Invoice
max value of account no which has entry type no 2
0
Invoice Paid
taken from the field amount which has entry type no 4
taken from the field amount which has entry type no 4
Closing Account
(=[opening account + invoice] - invoice paid)
(=[opening account + invoice] - invoice paid)
Note
1) Each account may have different periodic no.
2) Some account may have more than 4 distinct period no and less than 4 distinct periodic no.
3) Description column from expected result is not an part of table. It is been added for easier understanding.
Maybe you are looking for
-
https://social.msdn.microsoft.com/Forums/vstudio/en-US/14e79e9b-9ecd-43ee-8b90-3a56d4702d97/this-code-executes-normally-in-vs2014-despite-the-fact-that-an-inline-member-function-is-not?forum=vclanguage See the post here. I also believe nobody has see
-
Hello Friends, Could anybody explain me the procedure of AUC acquisition through Internal Order and settlement of this IO to AUC and AUC to main Asset? Let me know the step wise details start from creation of IO to settlement to main Asset Thanks to
-
Hi, I have recently been upgraded from Windows XP to Windows 7 Professional and work with Office 2010. With the upgrade a certain category function stopped working. When I want to catecorize my emails in a shared mailbox, I get an error message. I se
-
What's the maximum rights Devlopers have used.
I my environment before me the DBA has given "SA" rights to the developers. Now I want to check what's the maximum rights they have used. So that I can show him this due to this reason I am removing your rights from sa. Thanks
-
After 10.6.7 update cannot run any programs!
Everything was fine yesterday on 10.6.6 Updated this morning to 10.6.7 via Software Update. All went fine. Restarted and now cannot run Finder, Safari, iTunes etc etc ALL crash with unexpected error. Repaired disk in Safe mode but no change. Any idea