누구나 VB.NET으로 SQL 텍스트를 구문 분석하는 방법을 알고 있습니까?SQL 구문 분석 텍스트
예 : SQL 파일 "CREATE TABLE ..."이 있습니다. 열의 배열과 데이터 유형의 배열을 가져오고 싶습니다.
누구나 VB.NET으로 SQL 텍스트를 구문 분석하는 방법을 알고 있습니까?SQL 구문 분석 텍스트
예 : SQL 파일 "CREATE TABLE ..."이 있습니다. 열의 배열과 데이터 유형의 배열을 가져오고 싶습니다.
: 당신이 테이블이 구축되면 당신은 스키마 또는 실제 데이터를 필요로하는 경우 단지 한 라인을 선택하기 위해 DataReader를 사용할 수는 다음과 같이 뭔가를 할 :
Dim myReader As DataReader
Dim myTable As DataTable
Dim myColumns As New Collection
myReader = //' get your data
If myReader.HasRows Then
myTable.Load(myReader)
For Each col As DataColumn In myTable.Columns
myColumns.Add(col.DataType.ToString, col.ColumnName)
Next
End If
이제 myColumns 컬렉션은 열 이름의 Key
을 가지며 Value
은 열 데이터 유형입니다. 필요한 경우이를 수정하여 2 개의 별도 콜렉션을 만들 수 있습니다.
반면에 문자열을 구문 분석하면 훨씬 더 많은 디버깅이 필요하며 오류가 발생할 여지가 많습니다.
내 문제가 해결되었습니다. 감사합니다. Theres 어쨌든 열 데이터를 검색합니다. 유형 (및 최대 값)? 감사합니다 –
Nvm, 사실 고마워요! –
@ Rob Allen : 흠 ... 그걸 투표해야 겠군. :-) – Tomalak
해당 문을 SQL Server에 공급하는 가장 쉬운 방법 일 수 있으며 실제로 임시 데이터베이스에 해당 테이블을 만듭니다.
그런 다음 테이블 구조를 쉽게 파악할 수 있습니다.
명세서 문자열에서 구문 분석해야하는 것은 테이블 이름입니다. 더 나은 점은 단순히 테이블을 교체하고 처음부터 알려진 테이블 이름을 가질 수 있다는 것입니다.
또한 진술이 유효한 SQL이라면 정보를 얻을 수 있습니다. Tomalak의 게시물 @에 확장
확인하시기 바랍니다 this demo to help you Analyzing DDL statement
입력 SQL :
생성 된 출력
create table new_employees
(
employee_id number primary key,
first_name varchar2(15) null,
last_name varchar2(15) check(last_name>10),
hire_date date default sysdate,
dept_id number,
dept_name varchar2(100),
start_date timestamp(7) references scott.dept(start_date),
end_date timestamp(7) references dept.end_date on delete cascade,
check (start_date>end_date),
constraint c_name unique(first_name,last_name),
foreign key(dept_id,dept_name) references dept(id,name)
);
:
Table Name:new_employees
Columns:
name:employee_id
datetype:number
inline constraints:
primary key
name:first_name
datetype:varchar2(15)
null: yes
name:last_name
datetype:varchar2(15)
inline constraints:
check:last_name>10
name:hire_date
datetype:date
default:sysdate
name:dept_id
datetype:number
name:dept_name
datetype:varchar2(100)
name:start_date
datetype:timestamp(7)
inline constraints:
foreign key
referenced table:scott.dept
referenced columns:start_date
name:end_date
datetype:timestamp(7)
inline constraints:
foreign key
referenced table:dept.end_date
outline constraints:
check:start_date>end_date
constraint name:c_name
unique key
columns:first_name,last_name
foreign key
columns:dept_id,dept_name
referenced table:dept
referenced columns:id,name
왜 파일의 샘플을 게시하지는, 아마도 누군가가 당신을 말할 수있을 것입니다 정확히 무엇을 당신에게 해야 할 일. 주요 단어를 찾는 것과 같이 "CREATE TABLE"이 있습니다. –