Почему этот заголовочный файл повышения не включен

он называется Identity Columns и доступен только из оракула Oracle 12c

CREATE TABLE identity_test_tab
(
   id            NUMBER GENERATED ALWAYS AS IDENTITY,
   description   VARCHAR2 (30)
);

примера вставки в Identity Columns, как показано ниже

INSERT INTO identity_test_tab (description) VALUES ('Just DESCRIPTION');

Создана 1 строка.

Вы НЕ МОЖЕТЕ вставить, как показано ниже

INSERT INTO identity_test_tab (id, description) VALUES (NULL, 'ID=NULL and DESCRIPTION');

ОШИБКА в строке 1: ORA-32795: невозможно вставить в сгенерированный столбец идентификаторов всегда

INSERT INTO identity_test_tab (id, description) VALUES (999, 'ID=999 and DESCRIPTION');

ОШИБКА в строке 1: ORA-32795: невозможно вставить в сгенерированный столбец идентификаторов всегда

полезную ссылку

12
задан Janusz 30 June 2009 в 18:44
поделиться

2 ответа

Прежде всего используйте

FIND_PACKAGE(Boost REQUIRED)

, а не

  FIND_PACKAGE(Boost)

. Таким образом, cmake выдаст вам приятное сообщение об ошибке, если не найдет его, задолго до начала компиляции. Если это не удается, установите для переменной среды BOOST_ROOT значение / opt / local (это префикс установки). Кроме того, вам нужно будет выполнить ссылку в библиотеке файловой системы, поэтому вы хотите

FIND_PACKAGE(Boost COMPONENTS filesystem REQUIRED)

для дальнейшего использования

target_link_libraries(mytarget ${Boost_FILESYSTEM_LIBRARY})

Введите

cmake --help-module FindBoost

в оболочке, чтобы получить документацию для модуля поиска Boost в вашей установке cmake.

PS: Пример

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
project(Foo)

find_package(Boost COMPONENTS filesystem REQUIRED)

include_directories(${Boost_INCLUDE_DIRS})
add_executable(foo main.cpp)
target_link_libraries(foo 
  ${Boost_FILESYSTEM_LIBRARY}
)

main.cpp

#include <boost/filesystem.hpp>
#include <vector>
#include <string>
#include <cstdio>
#include <cstddef>

namespace fs = boost::filesystem;
using namespace std;

int main(int argc, char** argv)
{
  vector<string> args(argv+1, argv+argc);
  if(args.empty())
  {
    printf("usage: ./foo SOME_PATH\n");
    return EXIT_FAILURE;
  }

  fs::path path(args.front());

  if(fs::exists(path))
    printf("%s exists\n", path.string().c_str());
  else
    printf("%s doesn't exist\n", path.string().c_str());

  return EXIT_SUCCESS;
}
15
ответ дан 2 December 2019 в 20:41
поделиться

Пробовали ли вы включить filesystem.hpp без части "boost /"?

0
ответ дан 2 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: