|   | |||||||||||||||||||||||||||||||||||||||||||
| 
 | |||||||||||||||||||||||||||||||||||||||||||
| 
 Reading and writing records and lists Description This set of examples shows how to work with advanced data structures when accessing data in spreadsheets and databases:
                     
 Further explanation of this example: Xpress Whitepaper 'Using ODBC and other database interfaces with Mosel', Section Examples - Working with lists - Working with records. 
 Source Files By clicking on a file name, a preview is opened at the bottom of this page. Data Files 
 listinout4.mos 
(!******************************************************
   Mosel Example Problems
   ====================== 
   file listinout4.mos
   ```````````````````
   Reading/writing lists from/to
   an Oracle database.
   - Using 'initializations' and OCI statements -
   
   (c) 2012 Fair Isaac Corporation
       author: S. Heipcke, Dec. 2012, rev. Aug. 2023
*******************************************************!)
model "List handling (OCI)"
 uses "mmoci"
 options keepassert
 parameters
  DB="myname/mypassword@dbname"     ! Login to Oracle database (not provided)
 end-parameters
 declarations
  LI: list of integer
  A: integer
  LS,LS2: list of string
 end-declarations
 
! **** Using SQL statements ****
 setparam("OCIdebug",true)
 OCIlogon(DB)
 assert(getparam("OCIsuccess"))
 writeln("Connection number: ",getparam("OCIconnection"))
 OCIexecute("select * from List1 ", LI)
 A:=OCIreadinteger("select * from A")
 OCIexecute("select * from List2 ", LS)
 
! Display the lists
 writeln("LI: ", LI)
 writeln("A: ", A, ", LS: ", LS)
 
! Reverse the list LI
 reverse(LI)
! Append some text to every entry of LS
 LS2:= sum(l in LS) [l+" "+A]
! Display the modified lists
 writeln("LI: ", LI)
 writeln("LS2: ", LS2)
 OCIexecute("delete from List1Out")     ! Cleaning up previous output
 OCIexecute("delete from List2Out")
 OCIexecute("insert into List1Out values (:1)", LI)
 assert(getparam("OCIsuccess"))
 OCIexecute("insert into List2Out values (:1)", LS2)
 assert(getparam("OCIsuccess"))
 
 OCIlogoff
! **** Using 'initializations from' ****
 initializations from "mmoci.oci:debug;"+DB
  LI as "List1"
  A
  LS as "List2"
 end-initializations 
! Display the lists
 writeln("LI: ", LI)
 writeln("A: ", A, ", LS: ", LS)
! Reverse the list LI
 reverse(LI)
! Append some text to every entry of LS
 LS2:= sum(l in LS) [l+" "+A]
! Display the modified lists
 writeln("LI: ", LI)
 writeln("LS2: ", LS2)
 initializations to "mmoci.oci:"+DB
  LI as "List1Out"
  LS2 as "List2Out"
 end-initializations 
end-model
**************************************************
! Creation of data tables in an Oracle database:
 declarations
  tsucc: array ({false,true}) of string
 end-declarations
 tsucc(false):="failed"; tsucc(true):="succeeded"
 setparam("OCIdebug",true)
 OCIlogon(DB)
 writeln("Connection number: ",getparam("OCIconnection"))
 OCIexecute("create table List1 (ListValues integer)")
 writeln(" - Create List1 (",tsucc(getparam("OCIsuccess")),")")
 OCIexecute("insert into List1 (ListValues) values (:1)", [ 1,2,3,4,5,6,7,8 ])
 writeln(" - Insert values into List1 (",tsucc(getparam("OCIsuccess")),",",
        getparam("OCIrowcnt"),'/',getparam("OCIrowxfr")," rows)")
 
 OCIexecute("create table A (AValue integer)")
 writeln(" - Create A (",tsucc(getparam("OCIsuccess")),")")
 OCIexecute("insert into A (AValue) values (:1)", [ 2002 ])
 writeln(" - Insert values into A (",tsucc(getparam("OCIsuccess")),",",
        getparam("OCIrowcnt"),'/',getparam("OCIrowxfr")," rows)")
 
 OCIexecute("create table List2 (ListValues char(3))")
 writeln(" - Create List2 (",tsucc(getparam("OCIsuccess")),")")
 OCIexecute("insert into List2 (ListValues) values (:1)", [ Jan,May,Jul,Nov,Dec ])
 writeln(" - Insert values into List2 (",tsucc(getparam("OCIsuccess")),",",
        getparam("OCIrowcnt"),'/',getparam("OCIrowxfr")," rows)")
 
 OCIexecute("create table List1Out (ListValues integer)")
 writeln(" - Create List1Out (",tsucc(getparam("OCIsuccess")),")")
 OCIexecute("create table List2Out (ListValues char(10))")
 writeln(" - Create List2Out (",tsucc(getparam("OCIsuccess")),")")
 
 OCIlogoff
 | |||||||||||||||||||||||||||||||||||||||||||
| © Copyright 2025 Fair Isaac Corporation. |