Что такое набор данных со строгим контролем типов?

Я делаю все в одинарных кавычках, чтобы избежать странных расширений. Чтобы в строке была одинарная кавычка, я использую '\'', как в ' string '\'' rest of string '. Чтобы иметь переменную, я использую '"$var"', как в ' string '"$var"' rest of string, чтобы она правильно раскрылась и соединилась с остальной частью строки.

Следующие работы:

> var=var
> echo "select dbms_metadata.get_ddl('PACKAGE'," | 
> sed 's|\(select dbms_metadata.get_ddl('\''PACKAGE'\'',\).*|\1'\'"${var}"\'','\''PRC_BNE_JZ'\'') from dual;|'
select dbms_metadata.get_ddl('PACKAGE','var','PRC_BNE_JZ') from dual;

Но, вероятно, использовать ", вероятно, легче в этом случае, поскольку строка использует ' везде, как в:

sed "s|\(select dbms_metadata.get_ddl('PACKAGE',\).*|\1'${var}','PRC_BNE_JZ') from dual;|"

Ошибка исходит от оболочки, которая не может разобрать аргументы. Ex. для следующего:

> echo abc)
main.sh: line 2: syntax error near unexpected token `)'
main.sh: line 2: `echo abc)'

В вашей команде происходит следующее:

sed -i " bla bla "'${var}','PRC_BNE_JZ') from dual;"|" backup_script.sql
                                                       ^^^^^^^^^^^^^^^^^
                                         ^^^^^^^^^^^^^ - could be 4th argument
                                       ^ - unquoted `)` is parsed by bash, as in subshell `( ... )`
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - 2nd argument
    ^^ - 1st argument to sed command
^^^ - run sed command
6
задан tpower 28 October 2008 в 12:46
поделиться

4 ответа

Набор данных со строгим контролем типов является тем, который имеет определенные типы для таблиц и их столбцов.

Можно сказать

EmployeeDataset ds = ...
EmployeeRow row = ds.Employees.Rows[0];
row.Name = "Joe";

вместо:

DataSet ds = ...
DataRow row = ds.Tables["Employees"].Rows[0];
row["Name"] = "Joe";

Это помогает, потому что Вы ловите ошибки в именовании во время компиляции, а не время выполнения, и также осуществляет типы на столбцах.

15
ответ дан 8 December 2019 в 05:59
поделиться

Короткий ответ: набор данных, который, как гарантирует (компилятор), будет содержать определенный тип.

3
ответ дан 8 December 2019 в 05:59
поделиться

Похоже, что DataSet был уже покрыт, но для полноты, отмечает, что в.NET 3.5 существуют хорошие альтернативы для простого доступа к данным; в частности, вещи как LINQ к SQL. Это имеет подобную цель, но сохраняет намного более чистую простую модель OO к Вашим классам данных.

3
ответ дан 8 December 2019 в 05:59
поделиться

Набор данных, который является плотно к определенной таблице во время компиляции, таким образом, можно получить доступ к столбцам таблицы с помощью фактического имени столбца вместо индекса.

1
ответ дан 8 December 2019 в 05:59
поделиться
Другие вопросы по тегам:

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