он называется 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: невозможно вставить в сгенерированный столбец идентификаторов всегда
Прежде всего используйте
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;
}
Пробовали ли вы включить filesystem.hpp без части "boost /"?