Binary Types
Binary types of 32-bit integer and floating point and 64-bit floating point are supported.Example Description
- These types are not effected by your choice of numeric number conversion.
- Only the NULL-value support is effected :
- When choosing primitive numeric conversion (int,double) - NULL-values are not supported.
- When choosing object types (java.lang.Integer, java.lang.Double, math.BigDecimal) - NULL-values are supported.
PL/SQL Function
PL/SQL Function : BINARY_TYPES
create or replace function binary_types
(
i_bin_float in binary_float,
i_bin_double in binary_double,
i_bin_integer in binary_integer,
o_bin_float out binary_float,
o_bin_double out binary_double
)
return binary_integer
/**
* Demo of binary type handling.
* @param i_bin_float 32-bit floating point value.
* @param i_bin_double 64-bit floating point value.
* @param i_bin_integer 32-bit integer value.
* @param o_bin_float 32-bit floating point value
* @param o_bin_double 64-bit floating point value.
* @return 32-bit integer
*/
is
begin
o_bin_float := i_bin_float * 3.14159265359;
o_bin_double := i_bin_double * 3.14159265359;
return i_bin_integer * 3;
end binary_types;
Factory API : Calling the PL/SQL Function
Using the static factory to get the remote service.Java Calling Class : BinaryTypesFactoryApi.java
package plsql_workbench_examples.factoryapi;
import factory.ExamplesRPCFactory;
import service.BinaryTypesService;
import transferobject.BinaryTypesTO;
public class BinaryTypesFactoryApi {
public static void main(String[] args)
{
try {
// set database credentials and configuration parameters
System.setProperty("dbw_examples.url", "jdbc:oracle:thin:@192.168.0.109:1521/orcl");
System.setProperty("dbw_examples.username", "dbw_examples");
System.setProperty("dbw_examples.password", "dbw_examples");
// getting the service
BinaryTypesService service = ExamplesRPCFactory.getBinaryTypesService();
// calling the stored procedure
BinaryTypesTO binaryTypesTO = service.call(1f, 1d, 1);
// print values
System.out.format("%.12f %.12f %d%n",
binaryTypesTO.oBinFloat,
binaryTypesTO.oBinDouble,
binaryTypesTO.returnValue);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
Spring API : Calling the PL/SQL Function
Using Spring annotation to inject the service and call the remote service.Java Calling Class : BinaryTypesSpringApi.java
package plsql_workbench_examples.springapi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.stereotype.Component;
import service.BinaryTypesService;
import transferobject.BinaryTypesTO;
@Component
public class BinaryTypesSpringApi {
@Autowired
private BinaryTypesService binaryTypesService;
public static void main(String[] args)
{
// set database credentials and configuration parameters
System.setProperty("dbw_examples.url", "jdbc:oracle:thin:@192.168.0.109:1521/orcl");
System.setProperty("dbw_examples.username", "dbw_examples");
System.setProperty("dbw_examples.password", "dbw_examples");
// Register Spring Beans, Spring Context and call demo method
try (GenericApplicationContext ctx = BaseSpringConfig.getCtx(BinaryTypesSpringApi.class)) {
ctx.getBean(BinaryTypesSpringApi.class).runDemo();
}
}
private void runDemo()
{
try {
// calling the stored procedure
BinaryTypesTO binaryTypesTO = binaryTypesService.call(1f, 1d, 1);
// print values
System.out.format("%.12f %.12f %d%n",
binaryTypesTO.getOBinFloat(),
binaryTypesTO.getOBinDouble(),
binaryTypesTO.getReturnValue());
}
catch (Exception e) {
e.printStackTrace();
}
}
}