File indexing completed on 2025-02-23 05:15:19

0001 //
0002 // Copyright (C) 2021 Vadim Zeitlin
0003 // Distributed under the Boost Software License, Version 1.0.
0004 // (See accompanying file LICENSE_1_0.txt or copy at
0005 // http://www.boost.org/LICENSE_1_0.txt)
0006 //
0007 
0008 #ifndef SOCI_ORACLE_CLOB_H_INCLUDED
0009 #define SOCI_ORACLE_CLOB_H_INCLUDED
0010 
0011 #include "soci/oracle/soci-oracle.h"
0012 
0013 // Note that mopst functions in this file are currently implemented in
0014 // standard-use-type.cpp except for read_from_lob() which is found in
0015 // standard-into-type.cpp.
0016 
0017 namespace soci
0018 {
0019 
0020 namespace details
0021 {
0022 
0023 namespace oracle
0024 {
0025 
0026 // Creates and returns a temporary LOB object. Throws on error.
0027 OCILobLocator * create_temp_lob(oracle_session_backend& session);
0028 
0029 // Writes the given value to the LOB. Throws on error.
0030 void write_to_lob(oracle_session_backend& session,
0031     OCILobLocator * lobp, const std::string & value);
0032 
0033 // Reads the value from the lob into the given string. Throws on error.
0034 void read_from_lob(oracle_session_backend& session,
0035     OCILobLocator * lobp, std::string & value);
0036 
0037 // Frees a temporary LOB object. Doesn't throw.
0038 void free_temp_lob(oracle_session_backend& session, OCILobLocator * lobp);
0039 
0040 } // namespace oracle
0041 
0042 } // namespace details
0043 
0044 } // namespace soci
0045 
0046 #endif // SOCI_ORACLE_CLOB_H_INCLUDED